名前


wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ

書式


#define _BSD_SOURCE /* または wait3() に対し #define _XOPEN_SOURCE 500 */ #include <sys/types.h> #include <sys/time.h> #include <sys/resource.h> #include <sys/wait.h>

pid_t wait3(int *status, int options, struct rusage *rusage);

pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage);

説明


システムコール wait3() と wait4() は waitpid(2) と同様の動作をする。それに加え、子プロセスのリソース使用状況の情報を rusage が指す構造体に入れて返す。

rusage を使用する点を除けば、以下の 2つは等価である。

wait3(status, options, rusage);

waitpid(-1, status, options);

同様に、以下の 2つも等価である。

wait4(pid, status, options, rusage);

waitpid(pid, status, options);

言い換えると、 wait3() は全ての子プロセスを対象に待つが、 wait4() では特定の子プロセス (複数可) を選んで待つことができる。

rusage が NULL でない場合、 rusage が指す rusage 構造体 には子プロセスのアカウント情報が格納される。 詳しくは getrusage(2) を参照のこと。

返り値


waitpid(2) と同様。

エラー


waitpid(2) と同様。

準拠


4.3BSD

注意


現在では <sys/time.h> をインクルードする必要はないが、インクルードしておくと 移植性を高めることができる (実際には <sys/resource.h>rusage 構造体が定義されているが、そのフィールドで使用されている struct timeval 型は <sys/time.h> で定義されている)。

関連項目


fork(2), getrusage(2), sigaction(2), signal(2), wait(2), feature_test_macros(7), signal(7)

openSUSE Logo

コンテンツ