sigprocmask — examine and change blocked signals
#include <signal.h>
int
sigprocmask( |
int | how, |
const sigset_t * | set, | |
sigset_t * | oldset) ; |
sigprocmask
() is used to
change the signal mask, the set of currently blocked signals.
The behavior of the call is dependent on the value of
how
, as follows.
SIG_BLOCK
The set of blocked signals is the union of the current set and the
set
argument.SIG_UNBLOCK
The signals in
set
are removed from the current set of blocked signals. It is legal to attempt to unblock a signal which is not blocked.SIG_SETMASK
The set of blocked signals is set to the argument
set
.
If oldset
is
non−null, the previous value of the signal mask is
stored in oldset
.
If set
is NULL,
then the signal mask is unchanged (i.e., how
is ignored), but the
current value of the signal mask is nevertheless returned in
oldset
(it is not
NULL).
The use of sigprocmask
() is
unspecified in a multithreaded process; see pthread_sigmask(3).
It is not possible to block SIGKILL
or SIGSTOP
. Attempts to do so are silently
ignored.
If SIGBUS
, SIGFPE
, SIGILL
, or SIGSEGV
are generated while they are
blocked, the result is undefined, unless the signal was
generated by the kill(2), sigqueue(2), or raise(3).
See sigsetops(3) for details on manipulating signal sets.
kill(2), pause(2), sigaction(2), signal(2), sigpending(2), sigprocmask(2), sigqueue(2), sigsuspend(2), pthread_sigmask(3), sigsetops(3), signal(7)
|