int main(void)
{
printf("Hello, world! \n");
fork();
return 0;
}
なぜ2つのHelloWorldのみを印刷するのですか?システムが関数fork()を実行するときはいつでも、新しいproccesが作成された場合、「Hello、world!\ n」を永久に出力する必要がありますか?
このプログラムはHello world
一度印刷する必要があります。それでも2回印刷する場合は、line buffer
がクリアされていないためです。printfに
あるため、ラインバッファをクリアする必要があり\n
ます。まだクリアされていないということは、これがコードの実行に使用しているプラットフォームに関するものであることを意味します。
これは、のfflush(stdout)
後に追加することで確認できprintf()
ます。
int main(void)
{
printf("Hello, world! \n");
fflush(stdout);
fork();
return 0;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加