0

私はこのようなコードを持っています:

fork();
if child:
   execvp("sth");   //Just returns if errors
if parent:
   save child pid;

anther 関数では、子が終了したかどうかを確認したいのですが、使用したくありませんwaitpid。それを行う他の方法はありますか?

4

1 に答える 1

1

子が終了したときに親に配信される SIGCHLD を処理するシグナル ハンドラーを設定できます。技術的には、非同期で呼び出されたとしても、それは「別の関数」です。ただし、信号を取得した後でも使用する必要がwaitpidあります。複数の子供がいる場合、それらを区別できることがわかっている唯一の方法です。

于 2012-11-20T06:48:00.313 に答える