if (fork() == 0) {
printf("[Child] I'm exiting\n");
}
else {
wait(NULL);
printf("[Parent] child exited\n");
}
wait(NULL)
子が完了するまで待ってから、それ以降のすべてを実行します。この場合、プログラムの出力はどのようになりますか?この場合wait(null)は何を行い、プログラムの出力は何ですか?
最初に親に入ってから子供が完了するまで待つ必要がありますので、[Child] ..... , [Parent] ....
が印刷されます。
子どもに行ってその物を印刷してから親にすることもできます。この場合、child process
はすでに完成しているので、wait(NULL)
は永遠に待機します。この場合、出力はとなり、[Child].....
となりますか?
子供が終了していない場合、それが終了するまで、親はそれを待っています
おかげ
'任意の子のための待機がcomplete'する::ので、それは*ブロック*待機時まで()を返します:あなたは常に参照してくださいよ、なぜ
がそれです。それが返ってきたら、あなたは**その子供が終わったことを知っている**。 – wildplasser