6
#include <stdio.h>
void main()
{
printf ("ciao");
fork();
}
我有关于C优化的一些想法,但我不知道。希望你知道答案。
#include <stdio.h>
void main()
{
printf ("ciao");
fork();
}
我有关于C优化的一些想法,但我不知道。希望你知道答案。
代码可能会打印"ciao"
两次,因为标准输出是缓冲IO,因此标准输出的内部缓冲区将在子进程中复制,并且在每个进程(父进程和子进程)退出时刷新两个缓冲区。
这与优化无关。
当叉()被调用时,父级和子进程继承它,因此,它们两者都将
打印出“侨”,当他们刷新缓冲区。如果你调用fflush(stdout);
打电话前它只会打印一次
您是否试过运行它? – MByD 2012-03-06 10:29:05
我不太清楚我是否理解这个问题。这是非常明显的打印。另外,main应该返回一个int,fork()所做的功能还不清楚:) – 2012-03-06 10:29:38
是的,它打印出“ciaociao”。我的问题是关于它为什么打印这个。 – gc5 2012-03-06 10:30:03