Skip to main content

待つ - Linuxコマンド - Unixコマンド

CSGOで悩むアレを解消!interp問題は終わり! (六月 2026)

CSGOで悩むアレを解消!interp問題は終わり! (六月 2026)
Anonim

wait、waitpid - プロセスの終了を待つ

シノプシス

#含める #含める

pid_t wait(int * 状態 );pid_t waitpid(pid_t ピッド 、int * 状態 、int オプション );

説明

待つ 子プロセスが終了するまで、または現在のプロセスを終了するか、シグナルハンドリング関数を呼び出すことであるシグナルが配信されるまで、現在のプロセスの実行を中断します。コールの時点までに子供が既に退出している場合(いわゆる「ゾンビ」プロセス)、関数はすぐに戻る。子が使用するシステムリソースはすべて解放されます。

ウェイトピッド 現在のプロセスの実行を一時停止します。 ピッド または現在のプロセスを終了させるか、またはシグナル処理関数を呼び出すことであるシグナルが配信されるまで、実行されます。子供が ピッド 呼び出しの時点(いわゆる「ゾンビ」プロセス)までに既に終了している場合、関数は直ちに戻ります。子が使用するシステムリソースはすべて解放されます。

の価値 ピッド 次のいずれかになります。

< -1

これは、プロセスグループIDが絶対値と等しい子プロセスを待つことを意味します。 ピッド .

-1

子プロセスを待つことを意味します。これは待つ 展示します。

0

プロセスグループIDが呼び出しプロセスのIDと等しい子プロセスを待つことを意味します。

> 0

これは、プロセスIDが値と等しい子を待つことを意味します ピッド .

の価値 オプション 次の定数のうちの0以上の論理和です。

WNOHANG

これは、子供が出ていない場合にすぐに戻ることを意味します。

勝つ

これは、停止しており、そのステータスが報告されていない子供たちにも戻ることを意味します。

(Linuxのみのオプションについては、以下を参照してください)。

もし 状態 ないヌル, 待つ またはウェイトピッド 状態情報を指す場所に格納する 状態 .

この状態は、以下のマクロで評価することができます(これらのマクロはstatバッファを取ります。int)を引数として使用します---バッファへのポインタではありません!):

WIFEXITED( 状態 )

子が正常に終了した場合はゼロ以外です。

WEXITSTATUS( 状態 )

終了した子の戻りコードの最下位8ビットを評価します。これは、呼び出しの引数として設定されている可能性があります出口() またはaの引数として リターン メインプログラムのステートメント。このマクロは、WIFEXITEDゼロ以外の値を返しました。

WIFSIGNALED( 状態 )

キャッチされなかったシグナルのために子プロセスが終了した場合はtrueを返します。

WTERMSIG( 状態 )

子プロセスが終了する原因となったシグナルの番号を返します。このマクロは、WIFSIGNALED ゼロ以外の値を返しました。

WIFSTOPPED( 状態 )

戻りを引き起こした子プロセスが現在停止している場合はtrueを返します。これは、コールが勝つ.

WSTOPSIG( 状態 )

子を停止させたシグナルの番号を返します。このマクロは、WIFSTOPPED ゼロ以外の値を返しました。

Unixの一部のバージョン(Linux、Solaris、AIX、SunOSなど)では、マクロWCOREDUMP( 状態 ) 子プロセスがコアをダンプしたかどうかをテストします。これは、#ifdef WCOREDUMP … #endifで囲んで使用してください。

戻り値

終了した子のプロセスID。ifWNOHANG 子が利用できなかった場合、またはエラーの場合-1(この場合 エラー 適切な値に設定される)。

エラー

ECHILD

で指定されたプロセス ピッド 存在しないか、呼び出しプロセスの子ではありません。 (これは、SIGCHLDのアクションがSIG_IGNに設定されている場合、自分の子供のために起こる可能性があります。スレッドに関するLINUX NOTESセクションも参照してください)。

EINVAL

もし オプション 引数が無効です。

EINTR

ifWNOHANG 設定されておらず、ブロックされていない信号またはSIGCHLD 捕まった。