FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。

4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | ライブラリ | 書式 | 解説 | | 戻り値 | エラー | 関連項目 | 規格 | 歴史
WAIT(2)                FreeBSD システムコールマニュアル                WAIT(2)

名称
     wait, waitid, waitpid, wait3, wait4, wait6 -- ステータスを変更するプロセ
     スを待つ

ライブラリ
     標準 C ライブラリ (libc, -lc)

書式
     #include <sys/types.h>
     #include <sys/wait.h>

     pid_t
     wait(int *status);

     pid_t
     waitpid(pid_t wpid, int *status, int options);

     #include <signal.h>

     int
     waitid(idtype_t idtype, id_t id, siginfo_t *info, int options);

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

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

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

     pid_t
     wait6(idtype_t idtype, id_t id, int *status, int options,
         struct __wrusage *wrusage, siginfo_t *infop);

解説
     wait() 関数は、status 情報が子プロセスに利用可能であるか、または、シグナ
     ルが受信されるまで、その呼び出しているスレッドの実行をサスペンド (一時停
     止) します。wait() 呼び出しが成功して返るとき、status 領域は、下記に定義
     されるように、変更されたステータスを報告するプロセスに関する情報を含んで
     います。

     wait4() と wait6() システムコールは、特定の子プロセスを待つ必要があるか、
     子プロセスによって蓄積されたリソース利用統計を必要とするか、またはオプ
     ションを必要とする、プログラムのためのより多くの一般的なインタフェースを
     提供しています。他の wait 関数は、wait4() または wait6() のいずれかを使用
     して実装されています。

     wait6() 関数は、この関数ファミリで最も一般的な関数であり、その独特の機能
     は、次の通りです:

     すべての wait される望ましいプロセスのステータスは、options で明示的に指
     定されなければなりません。wait(), waitpid(), wait3() と wait4() 関数は、
     すべて、終了して、トラップされるプロセスを暗黙のうちに待ち (wait) ます
     が、waitid() と wait6() 関数は、明示的に指定される対応する WEXITED と
     WTRAPPED フラグを要求します。これによって、終了したプロセスからの終了ス
     テータスを扱う必要なしに、他のステータスの変更を経験したプロセスを待つこ
     とができます。

     wait6() 関数は、次のように定義された構造体を指す wrusage 引数を受け付けま
     す:

     struct __wrusage {
             struct rusage   wru_self;
             struct rusage   wru_children;
     };

     これによって、呼び出されているプロセスは、主要な子プロセスからと同様に、
     それ自体の子プロセスからリソース使用量の統計を集めることができます。リ
     ソース使用量の統計が必要でないとき、このポインタは、NULL を指定します。

     最後の引数 infop は、NULL または siginfo_t 構造体へのポインタのいずれかで
     なければなりません。NULL でないなら、構造体は、プロセスが状態を変更したと
     き、配信される SIGCHLD シグナルに関して同じデータで満たされます。

     問い合わされる 1 組の子プロセスは、引数 idtypeid によって指定されま
     す。個別の idtypeid 引数は、プロセス ID とプロセスグループ ID に加え
     て他の多くのタイプの識別子をサポートしています。

           •   idtype が P_PID であるなら、waitid() と wait6() は、(pid_t)id
               と等しいプロセス ID がある子プロセスを待ちます。

           •   idtype が P_PGID であるなら、waitid() と wait6() は、(pid_t)id
               と等しいプロセスグループ ID がある子プロセスを待ちます。

           •   idtype が P_ALL であるなら、waitid() と wait6() は、あらゆる子
               プロセスを待ち、id は、が無視されます。

           •   idtype が P_PID または P_PGID で id がであるなら、waitid() と
               wait6() は、呼び出し側と同じプロセスグループのあらゆる子プロセ
               スを待ちます。

     waitid() と wait6() のこの実装によってサポートされた非標準の識別子のタイ
     プは、次の通りです:

     P_UID     実効ユーザ ID が (uid_t) id と等しいプロセスを待ちます。

     P_GID     実効グループ ID が (gid_t) id と等しいプロセスを待ちます。

     P_SID     セッション ID が id と等しいプロセスを待ちます。子プロセスがそ
               れ自体のセッションを開始するなら、そのセッション ID は、そのプ
               ロセス ID と同じとなります。そうでなければ、子プロセスのセッ
               ション ID は、呼び出し側のセッション ID と一致します。

     P_JAILID  jail 識別子が id と等しい jail 内のプロセスを待ちます。

     waitpid() と wait4() 関数について、単一の wpid 引数は、待っている子プロセ
     スの集合を指定します。

           •   wpid が -1 であるなら、呼び出しは、あらゆる子プロセスを待ちま
               す。

           •   wpid が 0 であるなら、呼び出しは、呼び出し側のプロセスグループ
               のあらゆる子プロセスを待ちます。

           •   wpid が 0 より大きいなら、呼び出しは、プロセス ID が wpid であ
               るプロセスを待ちます。

           •   wpid が -1 未満であるなら、呼び出しは、プロセスグループ ID が
               wpid の絶対値と等しいあらゆるプロセスを待ちます。

     status 引数は、下記に定義されています。

     options 引数は、次のオプションのいずれかのビット単位の論理和 (OR) を含ん
     でいます。

     WCONTINUED  SIGCONT シグナルを受信することによって、ジョブ制御の停止から
                 継続された、選択されたプロセスのステータスを報告します。

     WNOHANG     ステータスを報告したいプロセスがないとき、ブロックしません。

     WUNTRACED   SIGTTIN, SIGTTOU, SIGTSTP または SIGSTOP シグナルのために停止
                 された、選択されたプロセスのステータスを報告します。

     WSTOPPED    WUNTRACED のための別名。

     WTRAPPED    ptrace(2) によってトレースされ、ブレークポイントをトラップす
                 るか、または到達してた選択されたプロセスのステータスを報告し
                 ます。このフラグは、関数 wait(), waitpid(), wait3() と
                 wait4() に対して暗黙のうちに設定されます。
                 waitid() と wait6() 関数について、トラップされたプロセスから
                 のステータス報告が期待されるなら、フラグは、明示的に options
                 に含まれていなければなりません。

     WEXITED     終了した選択されたプロセスのステータスを報告します。このフラ
                 グは、関数 wait(), waitpid(), wait3() と wait4() に対して暗黙
                 のうちに設定されます。
                 waitid() と wait6() 関数について、終了したプロセスからのス
                 テータス報告が期待されるなら、フラグは、明示的に options に含
                 まれていなければなりません。

     WNOWAIT     状態が待つことが可能な状態で返されるプロセスを保持します。プ
                 ロセスは、この呼び出しが完了した後に、再び待たれるかもしれま
                 せん。

     waitid() と wait6() 関数について、オプション WEXITED, WUNTRACED,
     WSTOPPED, WTRAPPED または WCONTINUED の少なくとも 1 つは、指定されなけれ
     ばなりません。そうでなければ、報告する呼び出しのためのイベントは、ありま
     せん。このような場合に、無期限にハングアップすることを防ぐために、これら
     の関数は、errno に EINVAL を設定して -1 を返します。

     rusage が NULL でないなら、終了したプロセスとそのすべての子プロセスによっ
     て使用されるリソースの要約が返されます。

     wrusage が NULL でないなら、個別の要約が、終了したプロセスによって使用さ
     れるリソースとそのすべての子プロセスによって使用されるリソースに関して返
     されます。

     infop が NULL でないなら、siginfo_t 構造体は、SIGCHLD に設定された
     si_signo フィールドとステータスを報告するプロセスのプロセス ID に設定され
     た si_pid フィールドで返されます。終了されたプロセスのために、siginfo_t
     構造体の si_status フィールドは、_exit(2) に渡された完全な 32 ビット終了
     ステータスを含んでいます。他の呼び出しの status 引数は、終了ステータスの
     下位 8 ビットのみを返します。

     WNOHANG オプションが指定され、プロセスがステータスを報告したくないとき、
     waitid() は、infopsi_signosi_pid に 0 を設定します。これらの
     フィールドをチェックすることは、ステータス変更が報告されたかどうかを知る
     ただ 1 つの方法です。

     WNOHANG オプションが指定され、プロセスがステータスを報告したくないとき、
     wait4() と wait6() は、0 のプロセス ID を返します。

     wait() 呼び出しは、-1 の wpid 値、0 の options 値と NULL の rusage 値を付
     けた wait4() と同じです。waitpid() 関数は、NULL の rusage 値を付けた
     wait4() と同一です。より古い wait3() 呼び出しは、-1 の wpid 値を付けた
     wait4() と同じです。wait4() 関数は、options にフラグ WEXITED と WTRAPPED
     が設定され、NULL に設定された infop を付けた wait6() と同一です。

     次のマクロは、プロセスの現在のステータスをテストするために使用されます。
     次の 4 つのマクロのまさに 1 つは、0 でない (true) 値に評価します:

     WIFCONTINUED(status)
             プロセスが終了していなくて、ジョブ制御の停止の後に継続されている
             なら、真。wait 呼び出しが WCONTINUED オプションを指定した場合の
             み、このマクロを真とすることができます。

     WIFEXITED(status)
             プロセスが _exit(2) または exit(3) への呼び出しによって正常に終了
             したなら、真。

     WIFSIGNALED(status)
             プロセスがシグナルの受信のために終了したなら、真。

     WIFSTOPPED(status)
             プロセスが終了していないが、停止していて再開することができるな
             ら、真。wait 呼び出しが WUNTRACED オプションを指定したか、または
             子プロセスがトレースされている (ptrace(2) を参照) 場合のみ、この
             マクロを真とすることができます。

     それらのマクロの値によって、次のマクロは、子プロセスに関する残りのステー
     タス情報を生成します:

     WEXITSTATUS(status)
             WIFEXITED(status) が真であるなら、子プロセスによって _exit(2) ま
             たは exit(3) に渡された引数の下位 8 ビットを評価します。

     WTERMSIG(status)
             WIFSIGNALED(status) が真であるなら、プロセスの終了を引き起こした
             シグナルの番号を評価します。

     WCOREDUMP(status)
             WIFSIGNALED(status) が真であるなら、プロセスの終了が、シグナルが
             受信されたとき、プロセスのイメージを含んでいるコアファイルの作成
             が伴ったなら、真と評価します。

     WSTOPSIG(status)
             WIFSTOPPED(status) が真であるなら、プロセスの停止を引き起こしたシ
             グナルの番号を評価します。


     終了シグナルのリストについては、sigaction(2) を参照してください。0 のス
     テータスは、正常終了を示しています。

     すべての子プロセスが終了するのを待たずに、親プロセスが終了するなら、残り
     の子プロセスは、親プロセス 1 の ID (init プロセスの ID) を割り当てられま
     す。

     wait() 呼び出しのいずれかが保留中の間に、シグナルが捕獲されるなら、呼び出
     しは、シグナルに効力があるオプションに依存して、シグナル捕獲ルーチンが返
     るとき、割り込まれるか、または再開されます。sigaction(2) の SA_RESTART の
     議論を参照してください。

     実装は、状態が変更された子プロセスごとに 1 つの SIGCHLD シグナルをキュー
     に入れます。wait() が、子プロセスの状態が利用可能であるために返るなら、子
     プロセスのプロセス ID に関連した保留中の SIGCHLD シグナルは、廃棄されま
     す。あらゆる他の保留中の SIGCHLD シグナルは、保留中のままです。

     SIGCHLD がブロックされ、wait() が、子プロセスの状態が利用可能であるために
     返るなら、保留中の SIGCHLD は、子プロセスの別の状態が利用可能でないなら、
     クリアされます。

戻り値
     wait() が、子プロセスを停止したか、継続したか、または終了したために返るな
     ら、子プロセスのプロセス ID は、呼び出しているプロセスに返されます。そう
     でなければ、-1 の値が返され、errno は、エラーを示す値が設定されます。

     wait6(), wait4(), wait3() または waitpid() が停止した、継続した、または終
     了した子プロセスのために返るなら、子どものプロセス ID は、呼び出している
     プロセスに返されます。以前に待たれていない子どもがないなら、errno に
     ECHILD に設定され -1 が返されます。そうでなければ、WNOHANG が指定され、停
     止した、継続した、または終了した子どもがないなら、0 が返されます。エラー
     が検出されるか、または捕獲されたシグナルが呼び出しをアボートするなら、-1
     の値が返され、errno は、エラーを示す値が設定されます。

     waitid() が返るなら、1 つ以上のプロセスに報告する状態変更があるので、0 が
     返されます。エラーが検出されるなら、-1 の値が、返され、errno は、エラーを
     示す値が設定されます。WNOHANG が指定され、停止されたか、継続されたか、ま
     たは終了した子プロセスがないなら、0 が返されます。infopsi_signosi_pid フィールドは、プロセスが状態を報告したかどうか判断するために 0 に
     対してチェックされなければなりません。

     あらゆる子プロセスを待つために -1 で呼び出される wait() ば、プロセス記述
     子 (pdfork(2) を参照) によって参照される子プロセスを無視します。特有のプ
     ロセスは、まだ、プロセス ID または記述子 (pdwait(4) を参照) を指定するこ
     とによって待つことができます。

エラー
     wait() 関数は、次の場合に失敗し、直ちに返ります:

     [ECHILD]           呼び出しているプロセスには、待っていない子プロセスが存
                        在しません。

     [ECHILD]           呼び出しているプロセスが、シグナル SIGCHLD を無視する
                        か、またはそのシグナルのためにフラグ SA_NOCLDWAIT を設
                        定することによって、そのようなステータスを破棄するよう
                        にシステムに依頼するので、終了した子プロセスからのス
                        テータスが利用可能ではありません。

     [EFAULT]           status または rusage 引数が不正なアドレスを指していま
                        す。(子プロセスの終了の前に、検出されないかもしれませ
                        ん。)

     [EINTR]            呼び出しが、捕獲されたシグナルによって割り込まれたか、
                        またはシグナルに、SA_RESTART フラグの設定がありませ
                        ん。

     [EINVAL]           不正な値が、options に指定されたか、または idtypeid がプロセスの有効な設定を指定していません。

関連項目
     _exit(2), ptrace(2), sigaction(2), exit(3), siginfo(3)

規格
     wait(), waitpid() と waitid() 関数は、POSIX によって定義されています。
     wait6(), wait4() と wait3() は、POSIX で仕様化されていません。WCOREDUMP()
     マクロは、POSIX インタフェースの拡張です。

     waitpid() がある WNOWAIT フラグを使用する能力は、拡張です。POSIX は、単に
     waitid() がある、このフラグのみを許可します。

歴史
     wait() 関数は、Version 6 AT&T UNIX で登場しました。

FreeBSD 11.2                     June 1, 2016                     FreeBSD 11.2

Table of Contents

FreeBSD マニュアル検索