親プロセスは、自分が開始した子プロセスのプロセスIDをどのように知ることができますか?

親プロセスは、自分が開始した子プロセスのプロセスIDをどのように知ることができますか?

問題は最近のテストからの問題です。その後、スライド(またはオンライン)で答えが見つかりませんでした。コーススライドには、親プロセスが子プロセスのPIDを保存することだけが記載されています。どのようにそれを受け取りました。

私の考えでは、ID転送はフォークコマンドを使用して直接実行されるか、後で信号を介して実行されるようです。

答え1

私の考えでは、ID転送はフォークコマンドを使用して直接実行されるか、後で信号を介して実行されるようです。

前者:fork()子プロセスPIDを親プロセスとして返します。バラよりフォークが時々親を返し、時には子を返すのはなぜですか?詳しくは(そしてman 2 forkもちろんあります。POSIXの定義)。

プロセスは、次のコマンドを使用して親プロセスのPIDを見つけることができます。getppid()システムコール(また定義済み)POSIX経由)。

関連情報