Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

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

書式

       #include <sys/types.h>
       #include <sys/time.h>
       #include <sys/resource.h>
       #include <sys/wait.h>

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

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

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       wait3():
           Since glibc 2.26:
               _DEFAULT_SOURCE ||
               (_XOPEN_SOURCE >= 500 &&
                       ! (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600))
           From glibc 2.19 to 2.25:
               _DEFAULT_SOURCE || _XOPEN_SOURCE >= 500
           Glibc 2.19 and earlier:
               _BSD_SOURCE || _XOPEN_SOURCE >= 500
       wait4():
           Since glibc 2.19:
               _DEFAULT_SOURCE
           Glibc 2.19 and earlier:
               _BSD_SOURCE

説明

       These  functions  are nonstandard; in new programs, the use of waitpid(2) or waitid(2)  is
       preferable.

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

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

           wait3(wstatus, options, rusage);

       は以下と等価である。

           waitpid(-1, wstatus, options);

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

           wait4(pid, wstatus, options, rusage);

       は以下と等価である。

           waitpid(pid, wstatus, 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> で定義されている)。

   C ライブラリとカーネルの違い
       Linux では、 wait3()  はライブラリ関数であり、 wait4()  システムコールを使って実装されてい
       る。

関連項目

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

この文書について

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