#include <stdio.h>
void main ()
{
printf ("ciao");
fork ();
}
我对C优化有一些想法,但我不确定。希望你知道答案。
答案 0 :(得分:14)
代码可能会打印"ciao"
两次,因为标准输出是缓冲IO,因此标准输出的内部缓冲区将在子进程中复制,并且当每个进程(父级和子级)退出时,两个缓冲区都会刷新。 / p>
与优化无关。
答案 1 :(得分:4)
当调用fork()时,父进程和子进程都继承它,因此它们都将
在刷新缓冲区时打印出“ciao”。如果你打电话给fflush(stdout);
在调用fork之前它只打印一次