C 这个fork()代码如何创建五个进程?
//如何将打印叉打印5次而不是8次?因为和操作员。请记住,一旦遇到错误,操作员将立即终止。fork将为父级或子级(忘记)返回0(false),它将终止跳过其他2个fork的布尔表达式,这就是为什么由于短路,您将只打印fork 5次而不是8次 如果我重写这个:C 这个fork()代码如何创建五个进程?,c,unix,operating-system,C,Unix,Operating System,//如何将打印叉打印5次而不是8次?因为和操作员。请记住,一旦遇到错误,操作员将立即终止。fork将为父级或子级(忘记)返回0(false),它将终止跳过其他2个fork的布尔表达式,这就是为什么由于短路,您将只打印fork 5次而不是8次 如果我重写这个: main() { fork() && fork() || fork(); printf("forked\n"); return 0; } 在firstfo
main()
{
fork() && fork() || fork();
printf("forked\n");
return 0;
}
在firstfork
之后,您将有一个进程直接进入else分支,另一个进程将继续。进入else循环的那个将只分叉一次(右分支)。进入内在的一个将会分叉一次,它的孩子将会再次分叉
main()
{
// fork() && fork() || fork();
if (fork()) {
if (!fork()) {
fork();
}
} else {
fork();
}
printf("forked\n");
return 0;
}
另一个问题是,为什么对一个重复的问题投3票,这个问题以前已经问过很多次了?
f
/ \
f f
|
f