fork()的使用和逻辑运算的混合使用。
fork() || fork(); 生成多少进程?
解析:1fork() || 2fork();
fork()用来创建进程,并返回值,子进程返回0,父进程返回子进程的进程号;对两个fork进行编号。
对于逻辑运算符或“||”,先计算左边表达式,如果是非0,则后边的表达式无需计算;如果是逻辑运算符与“&&”,左边表达式是0,则后边表达式无需计算;如果1fork返回非0,则2fork无需执行,具体执行过程如下图所示,3个叶子节点即最后生成3个进程。
1fork();
2fork() && 3fork() ||4 fork();
生成多少进程?
解析:生成过程如下图所示:左侧树共生成5个叶子节点,即5个进程;右侧树同左侧,也是5个进程。因此,共生成10个进程。