Answers
应该是19个进程
第一个fork(), 最后一个fork(), 肯定会执行,故总进程数= 2 * (fork() && fork() || fork()) *2 。
现在主要看这个fork2 && fork3 || fork4;
cond1 && cond2 || cond3表达式计算流程是这样的:
一、cond1为假,那就不判断cond2了,接着判断cond3
二、cond1为真,这又要分为两种情况:
1、cond2为真,这就不需要判断cond3了
2、cond2为假,那还得判断cond3
每个fork()返回值要么等于0,要么大于0,所以我把fork() && fork() || fork();改一下:
结果19个进程
一望无际的大饼
answered 12 years, 9 months ago