標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4.2 |
両方 |
#define _XOPEN_SOURCE_EXTENDED 1
#include <sys/wait.h>
int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);
waitid() 関数は、子のいずれかが状態を変更するまで 呼び出しプロセスを中断します。これは、子の現行状態を infop によって指示された構造体に記録します。子プロセスが 呼び出し前の状態を変更した場合には、waitid() が即時に戻ります。
idtype 引数と id 引数は、waitid() が 待機する子を指定するために使用されます。
idtype が P_PID の場合には、waitid() は、(pid_t)id と等しいプロセス ID をもつ子を待機します。
idtype が P_GID の場合には、waitid() は (pid_t)id と等しいプロセス・グループ ID をもつ子を 待機します。
idtype が P_ALL の場合には、waitid() は子を 待機し、id は無視されます。
infop 引数は、siginfo_t 構造体を指していなければ なりません。引数 idtype と options によって 指示された条件を指定した子プロセスが検出されたので、waitid() が 戻った場合には、infop が指した構造体はシステムに よってプロセスの状況が充てんされます。si_signo メンバーは 常に SIGCHLD と等しくなっています。
子のいずれかの状態が変更したので waitid() が戻った場合は、waitid() は 0 を戻します。