fork()

fork之后,从 fork 处开始父子进程并行执行,公有变量的值也在 fork 处被复制(当时的值),则父子进程分别使用各自的复本(而非共享)

for( i = 0; i < 5; i++ )   
    if( fork() == 0 )   
        continue;   

共生成多少个子进程?
简查了一下 fork() 的知识,它调用一次,返回两次,进入子进程并返回一次,然后退到父进程再返回一次,子进程中返回值为 0,父进程中返回的是子进程的进程号。
这就是一个二项树,二项树结点的计算公式为 2^n – 1,当 n = 5 时,结果为 31。

One Reply to “fork()”

发表评论

您的电子邮箱地址不会被公开。