#include <stdio.h>
#include <unistd.h>
int main()
{
fork();
fork() && fork() || fork();
fork();
printf("forked\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
难以理解如何计算执行程序后产生的进程数?帮我看看.
平台--UBUNTU 10.04
Dan*_*her 10
假设没有任何分叉失败,让我们按照fork-tree
叉子();
现在我们有两个过程,到目前为止,无论是谁的孩子和谁是父母,都称他们为p1和p2
叉子()
这两个进程都产生了另一个子进程,所以我们有4个进程,其中两个进程(p3,p4)结果为零,其他两个进程(p1和p2)非零
Run Code Online (Sandbox Code Playgroud)&& fork()
p1和p2再次分叉,给出p5和p6,共有6个进程.在p1和p2中,&&计算结果为true,因此它们不再在此行中进行分叉.对于p3,p4,p5,p6,&&求值为false,因此它们是fork
Run Code Online (Sandbox Code Playgroud)|| fork();
在这里,产生了四个新的过程,总共6 + 4 = 10.
叉子();
10个进程中的每一个再次分叉,产生20个.