void main(){
if(fork()==0)
printf("a");
else{
printf("b");
waitpid(-1,NULL,0);
}
printf("c");
exit(0);
}
質問:プログラムの出力は何ですか?フォーク()親と子プロセス
a。 acbc
b。 bcac
c。 abcc
d。 bacc
e。またはCまたはD(正解)
だから私は、Cがcorret answer.The以下のいずれかである理由を把握しようとしています私の推論です:
子プロセスが最初に行く、その後に制御を停止し、合格(プリントアウトcは子プロセスになるためのwaitpidの親プロセス、(「」プリントアウト)
、親プロセスを実行する(「B」プリントアウト)()、
親バック子に 制御を渡します)、子供は刈り取られます。
最後に、親プロセス「c」に戻ります。だから我々はabccを持っている。
私は正しいですか?
おそらく私は何について話しているのか分かりませんが、Cは正しいと思いますか?それがEでなければならないようです。 – Iluvatar
Eは正解です。 –