名 前
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/ に 書 か れ て い る 。