sigprocmask()
システムコールは、現在のシグナルマスク (配信がブロックされているシグナル) の
調査や変更を行います。
シグナルは、現在のシグナルマスクセットに含まれる場合にブロックされます。
set
が NULL ではない場合、
sigprocmask()
の操作は、
how
引数の値によって決まります。
シグナルマスクは、指定した
set
と現在のマスクによって変更されます。
関数は、
<signal.h>
で定義される以下の値を使用して
how
で指定します。
SIG_BLOCK
|
新しいマスクは、現在のマスクと指定した
set
の和集合になります。
|
SIG_UNBLOCK
|
|
新しいマスクは、現在のマスクと指定した
set
の補集合の交わりになります。
|
SIG_SETMASK
|
|
現在のマスクは、指定した
set
に置き換えられます。
|
oset
が NULL でない場合、前のシグナルマスクの値に設定されます。
set
が NULL である場合、
how
の値が無効になり、マスクは未設定のまま残るので、
シグナルマスクを修正せずに検査できるようになります。
システムでは、
SIGKILL
や
SIGSTOP
のブロックが許可されていません。