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 引数には、ここでリストされた以外の値があります。
関連項目
kill(2), sigaction(2), sigpending(2), sigsuspend(2), fpsetmask(3), pthread_sigmask(3), sigsetops(3)規格
sigprocmask() システムコールは、 IEEE Std 1003.1-1990 (“POSIX.1”) に適合するはずです。May 7, 2010 | FreeBSD |