gpt4 book ai didi

operating-system - fork() 在这里如何工作?

转载 作者:行者123 更新时间:2023-12-03 23:38:31 27 4
gpt4 key购买 nike

{ 
if(fork() && fork())
{
fork();
}

if(fork() || fork())
{
fork();
}

printf("hello");
return 0;
}

我不知道 fork() 在这里会如何表现,以及 hello 会被打印多少次。
我只知道 fork() && fork() 将为 1 个父级生成总共 3 个进程,类似地,fork() || fork() 将为 1 个父进程生成 3 个进程。

在第一个 if 条件之后,创建了 3 个进程,只有父进程会进入 if block 。现在总共有 4 个进程。现在,如何进一步进行,我完全搞砸了?

如果可能,请展示树状图。

最佳答案

树可视化!

if(fork() && fork()) 
{
fork();
}

First if block

现在我们有4个进程在系统中运行; PC1C2C3

如果 block ,每个将执行下一个。

if(fork() || fork()) 
{
fork();
}

Second if block

我们总共将有 4*5 = 20 进程在系统中运行,每个进程都会打印“Hello”。

关于operating-system - fork() 在这里如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39594176/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com