fork函数
“一个现有的进程可以调用fork函数创建一个新进程,fork函数被调用一次,返回两次,两次返回唯一的区别是子进程返回值是0,而父进程的返回值则是新子进程的进程ID”——《APUE》
网上有一个面试题目,考fork运行机制的,一个简单的题目,扯那么多。先提高一下这个题目的难度,然后用一棵简单的二叉树给出答案,根据只有一个,就是开头那句话。 分析下面程序,一共有几行输出,它们的含义是什么(自己假定进程号)?
##一、进程二叉树
树中每一个非叶子节点表示一个进程在执行fork函数,往左儿子节点走,表示进程不变,往右儿子节点走,表示进入新创建的子进程。总共8个叶子节点,8个不同的进程,到叶子节点8条不同的路径,程序输出8行。
##二、Ubuntu下运行结果验证
(2014-7-3添加)注:要真正弄懂fork函数如何做到返回两次,去看Linux源码。
留下评论