-1
このCプログラムでは、私は理解できない出力を得ています。なぜfork()はこのprint文を呼び出しますか?
#include <stdio.h>
int main()
{
printf("Hello World\n");
printf("%d\n", fork());
return 0;
}
それは出力:
Hello World
5
Hello World
0
私の質問を、なぜそれが二回の "Hello World" を印刷しないのですか?私の理解から、 "Hello World"が表示され、fork()が呼び出されます。
fork()はプログラムの先頭から開始しますか?
「Hello world」はキャッシュされていて、書き込まれていません。したがって、2番目のプロセスが終了すると、このメッセージも出力バッファから出力されます。フォークする前に 'fflush(stdout)'を追加してください。 – Ivan