繁体   English   中英

为什么这段代码从分叉执行8次printf?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM