SIGPROCMASK(2) | Linux Programmer's Manual | SIGPROCMASK(2) |
名前
sigprocmask -禁止するシグナルの確認と変更書式
#include <signal.h>glibc 向けの機能検査マクロの要件 ( feature_test_macros(7) 参照):
説明
sigprocmask() を使うと、呼び出したスレッドのシグナルマスクの取得/変更ができる。シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナルの集合のことである (詳細については signal(7) も参照のこと)。- 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 を返す。エラー
- EFAULT
- 引き数 set か oldset がプロセスに割り当てられたアドレス空間の外を指している。
- EINVAL
- how に指定された値が有効ではない。
準拠
POSIX.1-2001.注意
SIGKILL や SIGSTOP を禁止することはできない。禁止しようとしても黙って無視される。シグナル集合の操作に関する詳細は sigsetops(3) を参照のこと。
関連項目
kill(2), pause(2), sigaction(2), signal(2), sigpending(2), sigsuspend(2), pthread_sigmask(3), sigqueue(3), sigsetops(3), signal(7)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2012-04-15 | Linux |