SIGPROCMASK
Section: Linux Programmer's Manual (2)
Updated: 2005-09-15
Index
JM Home Page
roff page
名前
sigprocmask - 禁止するシグナルの確認と変更
書式
#include <signal.h>
int sigprocmask(int how, const sigset_t *set,
sigset_t *oldset);
説明
sigprocmask()
を使うと、シグナルマスク、つまり現在禁止されているシグナルの集合を変更できる。
このコールの動作は
how
の値によって決まる:
-
- SIG_BLOCK
-
禁止されたシグナルの集合は現在の値と
set
引き数を結合したものとなる。
- SIG_UNBLOCK
-
現在禁止されているシグナルの集合から
set
にあるシグナルを取り除く。禁止されていないシグナルを取り除こうと
しても問題はない。
- SIG_SETMASK
-
禁止されているシグナルの集合に
set
引き数を設定する。
oldset
が NULL でなければ、シグナルマスクの今までの値を
oldset
に格納する。
set
が NULL であれば、シグナルマスクは変更されない (すなわち、
how
は無視される)。
set
の値にかかわらず、現在のシグナルマスクの値は
oldset
に入れて返される (但し、
oldset
が NULL でない場合)。
マルチスレッドのプロセスで
sigprocmask()
を使用した場合の動作は規定されていない。
pthread_sigmask(3)
を参照のこと。
返り値
sigprocmask()
は成功すれば 0 を返し、エラーならば -1 を返す。
エラー
EINVAL
how
に指定された値が有効ではない。
準拠
POSIX.1-2001.
注意
SIGKILL
や
SIGSTOP
を禁止することはできない。
禁止しようとしても黙って無視される。
シグナル
SIGBUS,
SIGFPE,
SIGILL,
SIGSEGV
が禁止されている間に生成された場合で、
そのシグナルが
kill(2),
sigqueue(2),
raise(3)
によって生成されたものでないときには、
その後の動作は未定義である。
シグナル集合の操作に関する詳細は
sigsetops(3)
を参照のこと。
関連項目
kill(2),
pause(2),
sigaction(2),
signal(2),
sigpending(2),
sigprocmask(2),
sigqueue(2),
sigsuspend(2),
pthread_sigmask(3),
sigsetops(3),
signal(7)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:32:03 GMT, November 19, 2007