EN JA
SIGPROCMASK(2)
SIGPROCMASK(2) FreeBSD System Calls Manual SIGPROCMASK(2)

名称

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

ライブラリ

Standard C Library (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> にある次の値の 1 つを使用して how によって指定されます:

SIG_BLOCK
新しいマスクは、現在のマスクと指定された set の和集合です。
SIG_UNBLOCK
新しいマスクは、現在のマスクと指定された set の補数の共通集合です。
SIG_SETMASK
現在のマスクは、指定された set によって置き換えられます。

oset が NULL でないなら、シグナルマスクの以前の値に設定されます。 set が NULL であるとき、 how の値は、重要でなく、修正せずにシグナルマスクを調査する方法を提供して、マスクは、未設定のままになります。

システムは、ブロックされる SIGKILL または SIGSTOP を静かに許可しません。

スレッド化されたアプリケーションにおいて、 pthread_sigmask(3) は、 sigprocmask() の代わりに使用されなければなりません。

戻り値

The sigprocmask() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

sigprocmask() システムコールは、失敗し、次の 1 つが発生するなら、シグナルマスクは、変更されません:
[ EINVAL]
how 引数には、ここでリストされた以外の値があります。

規格

sigprocmask() システムコールは、 IEEE Std 1003.1-1990 (“POSIX.1”) に適合するはずです。
May 7, 2010 FreeBSD