複数のサブプロセスのフォーク()の使用を学習するために非常に適した、今日のレビュー・中間試験を作成し、forループ内の2つのフォーク()プロシージャ、すべてのを見つけました
1 INT メイン(){ 2 INT I、X、F。 3 、X = 1 。 4 のためには、(iは= 0 ; I < 3 ; I ++){F = フォーク()。 5 あれば(F == 0 ){ 6 X = X * 2 。 7 のprintf(" PID%D:%D \ n " 、X)(GETPID)。 8 9 } 10 } 11 リターン 0 。 12 } 13
プログラム1
1 INT メイン(ボイド){ 2 INT I、naptime。 3 のためには、(iは= 0 ; I < 4 ; I ++) 場合(フォーク()) ブレーク。 4 5 にsrand(GETPID())。 6 スリープ(naptime =ランド()%4 )。 7 8 のprintf(" 月NOM EST <%のC>、 " 9 " J」はdormi%D secondes \ N愛" A '+、' I、naptime)。 10 11 の出口(EXIT_ SUCCESS)。 12 }
プログラム2
図1のプログラムの実行結果は1であることを特徴として次の
:非常にこの記事読ん???困惑の初めまでhttps://blog.csdn.net/jason314/article/details/5640969#commentBoxを、私は自分自身がどのように問題をクリアしました
回路図:
プログラムの実行後、図2のプロセスは次のようになります。