假设我们有这样的事情:
printf("A");
fork();
printf("B");
输出将是
1)ABAB 2)图
你能解释一下吗?
正确的答案是,它取决于stdout的缓冲模式,而其他答案似乎忽略了该模式。
当使用未刷新的缓冲区进行分叉,然后在两个进程中继续使用stdio时(而不是通常的快速execve
或_exit
子进程),分叉时缓冲区中的内容可以被打印两次,每个进程一次。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句