|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > s > sigqueue - システムコールの説明 sigqueue - システムコールの説明 - Linux コマンド集 一覧表名前sigqueue - シグナルとデータをプロセスに送る 書式
#include <signal.h>
説明sigqueue ()は sig で指定されたシグナルを、PID が pid であるプロセスに送る。 シグナルを送るのに必要な権限は kill (2) と同じである。 kill (2) と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在するかをチェックすることができる。
value
引き数はシグナルと一緒に送るデータの付属アイテムを指定する。
value
は (整数またはポインタの値であり) 以下のような型である。
union sigval {
int sival_int;
void *sival_ptr;
};
受取先のプロセスに、このシグナルに対するハンドラを ( sigaction (2) に SA_SIGINFO を指定して) インストールしておくと、 そのハンドラの第 2 引き数に渡される siginfo_t 構造体の si_value フィールドによって、このデータを取得できる。 さらに、この構造体の si_code フィールドは SI_QUEUE に設定される。 返り値成功した場合、 sigqueue ()は 0 を返す。 これは受け取り側プロセスの待ち行列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 errno がエラーを表す値に設定される。 エラー
注意この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、または sigwait (3)を使用するのを待っていることにより) このシグナルを扱うスレッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッドに対してシグナルが配送されていなければならない。 準拠POSIX.1-2001 関連項目
kill
(2),
sigaction
(2),
signal
(2),
sigwait
(3),
signal
(7)
|
|