pcntl_sigwaitinfo
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
pcntl_sigwaitinfo — シグナルを待つ
説明
pcntl_sigwaitinfo() は、
呼び出し元のスクリプトの実行をいったん停止させ、signals
で指定したシグナルを受け取るまで待ちます。もしそのシグナルのいずれかがすでにペンディング状態
(pcntl_sigprocmask() でブロックされているなど) の場合、
pcntl_sigwaitinfo() は即時に結果を返します。
パラメータ
signals
-
待つシグナルの配列。
info
-
シグナルについての情報を含む配列が
info
に設定されます。次の要素は、すべてのシグナルについて設定されます。
- signo: シグナル番号
- errno: エラー番号
- code: シグナルコード
次の要素は、
SIGCHLD
シグナルの場合に設定されます。- status: 終了値あるいはシグナル
- utime: 使用したユーザー時間
- stime: 使用したシステム時間
- pid: 送信したプロセスの ID
- uid: 送信したプロセスの実ユーザー ID
次の要素は、
SIGILL
、SIGFPE
、SIGSEGV
およびSIGBUS
シグナルの場合に設定されます。- addr: 問題が発生したメモリ上の場所
次の要素は、
SIGPOLL
シグナルの場合に設定されます。- band: バンドイベント
- fd: ファイル記述子番号
戻り値
成功した場合にシグナル番号を返します。
失敗した場合に false
を返します
例
例1 pcntl_sigwaitinfo() の例
<?php
echo "Blocking SIGHUP signal\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
echo "Sending SIGHUP to self\n";
posix_kill(posix_getpid(), SIGHUP);
echo "Waiting for signals\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>
+add a note
User Contributed Notes 1 note
dave at mudsite dot com ¶
8 years ago
This function is not available on platforms that do not implement the underlying C function. Included in this would be MaxOS[1], and FreeBSD[2]
[1] : http://opensource.apple.com//source/xnu/xnu-1456.1.26/bsd/sys/signal.h
[2] : http://fxr.watson.org/fxr/source/sys/signal.h?v=FREEBSD11
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google