スポンサーリンク

SIGPROCMASK(2) FreeBSD システムコールマニュアル SIGPROCMASK(2)

名称

sigprocmask − 現在のシグナルマスクを操作する

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <signal.h>

int

       sigprocmask(int how, const sigset_t * restrict set,sigset_t * restrict oset);

解説

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 のブロックが許可されていません。

戻り値

関数 sigprocmask() は、処理が成功すると値 0 を返します。そうでない場合、 値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。

エラー

以下が発生すると、 sigprocmask() システムコールはエラーになり、シグナルマ スクは変更されません。

       [EINVAL]

how 引数が、ここでリストに挙げた以外の値になっていま す。

関連項目

kill(2), sigaction(2), sigpending(2), sigsuspend(2), fpsetmask(3), sigsetops(3)

規格

sigprocmask() システムコールは、 ISO/IEC 9945-1:1990 (‘‘POSIX.1’’) に適合 しています。

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク