SIGPROCMASK

Section: Linux Programmer's Manual (2)
Updated: 2005-09-15
Index JM Home Page roff page
 

名前

sigprocmask - 禁止するシグナルの確認と変更  

書式

#include <signal.h>

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);  

説明

sigprocmask() を使うと、シグナルマスク、つまり現在禁止されているシグナルの集合を変更できる。 このコールの動作は how の値によって決まる:
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 を返す。  

エラー

EINVAL how に指定された値が有効ではない。  

準拠

POSIX.1-2001.  

注意

SIGKILLSIGSTOP を禁止することはできない。 禁止しようとしても黙って無視される。

シグナル SIGBUS, SIGFPE, SIGILL, SIGSEGV が禁止されている間に生成された場合で、 そのシグナルが kill(2), sigqueue(2), raise(3) によって生成されたものでないときには、 その後の動作は未定義である。

シグナル集合の操作に関する詳細は sigsetops(3) を参照のこと。  

関連項目

kill(2), pause(2), sigaction(2), signal(2), sigpending(2), sigprocmask(2), sigqueue(2), sigsuspend(2), pthread_sigmask(3), sigsetops(3), signal(7)


 

Index

名前
書式
説明
返り値
エラー
準拠
注意
関連項目

This document was created by man2html, using the manual pages.
Time: 04:32:03 GMT, November 19, 2007