{
if(fork() && fork())
{
fork();
}
if(fork() || fork())
{
fork();
}
printf("hello");
return 0;
}
我不知道
fork()
在这里的行为以及打几次你好。我只知道
fork() && fork()
将为1个父级生成总共3个进程,同样,fork() || fork()
将为1个父级生成3个进程。在第一个
if
条件之后,将创建3个进程,只有父进程会进入if块。现在共有4个过程。现在,如何继续进行下去,我对此完全一无所知?如果可能,请显示树形图。
最佳答案
树的可视化!
if(fork() && fork())
{
fork();
}
现在我们有4个进程在系统中运行; P,C1,C2和C3。
并且每个将在下一个if块执行。
if(fork() || fork())
{
fork();
}
总共,我们将在系统中运行4 * 5 = 20个进程,并且每个进程都会显示“ Hello”。