子プロセスを作成するためのLinuxのフォーク

1.あなたは子プロセスを作成したいのはなぜ

(1)、すべてのプログラムは、プロセスを実行する必要があります

(2)複数のプロセスに並行してマクロを達成するために

2、内部原則フォーク

(1)、分裂および成長モードのプロセス。

  オペレーティングシステムがプログラムを実行するために、新しいプロセスを必要とする場合、オペレーティングシステムは、新しいコピー・プロセスを生成するために、既存のプロセスを使用します。

(2)フォーク関数呼び出しは、二回に一度戻り、戻り値は0、子プロセスに等しく、ゼロ親プロセスよりも大きな値を返します。

(3)、フォークを使用する典型的な方法:フォークは、次いで場合、戻り値を使用して決定され、そしてゼロは親プロセスよりも大きな値を返し、子プロセスは0に等しいです。

子プロセス(4)、フォークの戻り値は子に0である、親のIDで作成された現在のフォークに等しいです。

子供の約3、

(1)、子プロセスは独自の独立したPCBを持っています

(2)、子プロセスは同じカーネルスケジューリングです

操作4、ファイルへの親と子

(1)、子は親プロセスのオープン・ファイルを継承します

  、親プロセスは、FDを取得するために、ファイルを開くように開き、子プロセスのフォークを作成します。各書き込みの後工程のFDに彼の息子に書き込みます

  B、テスト結果:書き込みを続けます。その理由は、実際にはお互い(道のような特に後O_APPEND看板)に関連付けられている親と子の間でファイルポインタFD対応の本質であります

5、それぞれ独立して、親と子のは、同じファイル共有を開きます

(1)、親プロセスはオープン1.TXTを開き、子プロセスのオープン1.TXTを書き、その後、書き込み、結論は次のとおりです。書かれていました。

その理由は、それぞれの親と子のオープン1.TXT、2つのプロセスがPCBとは独立していたこの時、分離後のファイルテーブルにも依存しないので、二回の読み書きは完全に独立しています。

(2)、オープンO_APPENDフラグの使用は、実際のテスト結果は、親と子は、関連付けるための独立したオープンFDファイルポインタをO_APPEND署名できる書かれた達成することを示します。

6、総括:

(1)、親プロセスフォークの不存在下で、彼らが何をしているか、子プロセスが大きな影響力を持っていますが、親プロセスフォークの後、彼自身の中に子プロセスが影響しない場合。内部フォークの性質は、実際にPCBの親プロセスは新しい子プロセスと子プロセスを生成しコピーして、オペレーティングシステムのOSが実行フォーク復帰のために予定されているから、親プロセスが完全に独立しているためです。

(2)、究極の目標は、別のプログラムを実行して行くために子供を分離することです。

 

おすすめ

転載: www.cnblogs.com/jiangtongxue/p/11230915.html