EN JA
WAIT4(2)
WAIT4(2) Linux Programmer's Manual WAIT4(2)

名前

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

書式


#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 );
 

glibc 向けの機能検査マクロの要件 ( feature_test_macros(7) 参照):
 
wait3():
_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
 
wait4():
_BSD_SOURCE

説明

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

rusage を使用する点を除けば、次の wait3() の呼び出し


wait3(status, options, rusage);


は以下と等価である。


waitpid(-1, status, options);


同様に、次の wait4() の呼び出し


wait4(pid, status, options, rusage);


は以下と等価である。


waitpid(pid, status, options);


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

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

返り値

waitpid(2) と同様。

エラー

waitpid(2) と同様。

準拠

4.3BSD.
 
SUSv1 included a specification of wait3(); SUSv2 included wait3(), but marked it LEGACY; SUSv3 removed it.

注意

現在では <sys/time.h> をインクルードする必要はないが、インクルードしておくと移植性を高めることができる (実際には <sys/resource.h>rusage 構造体が定義されているが、そのフィールドで使用されている struct timeval 型は <sys/time.h> で定義されている)。
 
Linux では、 wait3() はライブラリ関数であり、 wait4() システムコールを使って実装されている。

関連項目

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

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2012-09-23 Linux