大家都在看
运用fork函数产生的结果不太理解,求解释
最佳答案
1.因为fork会复制父进程的整个内存空间
2.prinf不是实时的输出到屏幕上,而是先输出到缓冲区中
所以fork复制的时候,会把父进程缓冲区中的“you chosed FORK In father process,a=0”也复制进去
要避免这个情况的话,只需要在
if(fork()==0)之前加上一句
fflush(stdout);
把缓冲区清空就可以了
声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。