5部 関数リファレンス

waitpid

waitpid PID,FLAGS



特定のチャイルドプロセスが終了するのを待ち、消滅したプロセスのpidを返します。指定したチャイルドプロセスが存在しないときには、-1 を返します。ステータスは$?に返されます。

waitpidの使い方

use POSIX "wait_h";
...
waitpid(-1,&WNOHANG);

上記のようにすると、ブロックが起こらないようにして、任意のプロセスをwaitします。ブロックなしのwaitは、システムコールwait_pidか、システムコールwaitをサポートしているマシンでのみ利用可能です。しかしながら、特定のpidを 0 のFLAGSでのwaitはどこでも実装されています。(exitしたプロセスのステータス値を覚えておいて、Perlがシステムコールをエミュレートしますが、Perlスクリプトには取り入れられていません。)

関連記事