私はそれが愚かな質問になるかもしれないことを知っていますが、誰かが私が次のコードスニペットの振る舞いを理解するのを手伝ってくれるでしょうか
//label 0
int main(){
fork();//label 1
fork();//label 2
fork();//label 3
return 0;
}
私の知る限り、プロセスツリーは次のようになります
[0]
/ | \
[1] [2] [3]
/ \ |
[2] [3] [3]
|
[3]
私は正しいですか?その場合、2番目のフォークがラベル1フォークに対応するプロセスを生成せず、3番目のフォークがそれ以上プロセスを生成しない理由について混乱しています。つまり、子プロセスは(少なくともコードでは)親の正確なコピーであるため、親のコード全体を実行する必要があります。誰かがこの混乱で私を助けてくれますか...