[英]Why does this code execute printf 8 times from forking?
学习决赛,我遇到了这个问题。 他们询问以下代码执行printf的次数:
#include "csapp.h"
void doit() {
Fork();
Fork();
printf("hello\n");
return;
}
int main()
{
doit();
printf("hello\n");
exit(0);
}
解决方案说它printf执行了8次,但我无法弄清楚原因。 我一直试图绘制代码中发生的事情的图片,但我的图片看起来好像只执行了4次。
2个叉子 - 四个过程。 每个进程都有两个带hello
printfs
(一个在main
,一个在doit
- 因此为8个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.