C 函数 fork()
C function fork()
我想找人给我解释一下。我有这个程序:
int main(int argc, char *argv[]){
printf("P ");
if(fork()==0)
printf("C ");
return 0;
}
这个程序的结果是:P P C
第二个 "P" 的原因是什么?
IO 缓冲是原因。 printf
不是立即打印文本,而是等待换行符、fflush
或程序结束才真正打印它。但是 "future-to-print" 文本的缓冲区在被 fork
复制的内存中,因此两个进程都接收到它。最后都打印出来了。
我想找人给我解释一下。我有这个程序:
int main(int argc, char *argv[]){
printf("P ");
if(fork()==0)
printf("C ");
return 0;
}
这个程序的结果是:P P C
第二个 "P" 的原因是什么?
IO 缓冲是原因。 printf
不是立即打印文本,而是等待换行符、fflush
或程序结束才真正打印它。但是 "future-to-print" 文本的缓冲区在被 fork
复制的内存中,因此两个进程都接收到它。最后都打印出来了。