fork
文書によると(man 2 fork
):
子プロセスは、次の点を除いて親プロセスと同じです。
- 子プロセスには一意のプロセスIDがあり、このPIDは既存のプロセスグループ(setpgid(2))のIDと一致しません。
もしそうなら、これは2つの異なるプロセスグループに属する2つのプロセスが同じPIDを持つことを意味しますか?これは私にはわかりませんが、fork
既存のPGIDと同じ新しいPIDがないように強制されるため、フォークで新しく作成されたプロセスと同じPIDを持つ非リーダープロセスがある可能性があります。そうではありませんか?
答え1
プロセスIDは一意です。
説明する
fork() 関数は新しいプロセスを生成する必要があります。新しいプロセス(子プロセス)は、以下に詳述する場合を除き、呼び出しプロセス(親プロセス)の正確なコピーでなければなりません。
- 子プロセスには一意のプロセスIDが必要です。
- 子プロセスIDは、アクティブなプロセスグループIDとも一致しないでください。
- 子プロセスには、呼び出しプロセスのプロセスIDである別の親プロセスIDが必要です。
...