other versions
other sections
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
説明¶
これらの関数は廃止予定である。 新しいプログラムでは waitpid(2) や waitid(2) を使用すること。システムコール 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 には wait3() の規定があった。 SUSv2 には wait3() が含まれていたが、「過去の名残 (LEGACY)」となっていた。 SUSv3 では wait3() は削除された。
注意¶
現在では <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.79 の一部である。 プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2012-09-23 | Linux |