#include <stdio.h>
#include <unistd.h>
int main(void)
{
int pid1=0, pid2=0, pid3=0;
pid1 = fork() ;
pid2 = fork() ;
if(pid1 == 0 ) {
printf("A\n") ;
} else {
pid3 = fork() ;
printf("B\n") ;
}
if (pid2 != 0 && pid3 != 0) {
printf("C\n") ;
}
}
运行该程序将创建的进程总数是多少? ‘A’到‘C’每个字符会打印出多少个?简单解释一下原因。
2 个 A 的 4 个 B 的 1 个 C(2 分)
6道工序(含原一道工序)(2分)
最佳答案
在你们的帮助下我终于弄清楚了。解决方案附有图表,但令人困惑。但是,使用二叉树,我能够创建更好的图表版本,更好地解释该过程。
相同的颜色 block 代表相同的过程,只是在进度的不同点。二叉树的子节点代表进程的数量,打印输出从那里写入。检查一下并感谢所有的帮助。我现在明白发生了什么事。
关于c - 试图弄清楚 fork() 在这种情况下是如何工作的,但我似乎不明白答案是如何实现的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53074393/