NAME
sigprocmask - examine and change blocked signals
SYNOPSIS
#include <signal.h>
I int sigprocmask(int how , const sigset_t * set ,
I sigset_t * oldset );
DESCRIPTION
R 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
R 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
R set .
If
oldset
is non-null, the previous value of the signal mask is stored in
R 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
R oldset
(it is not NULL).
The use of
R sigprocmask ()
is unspecified in a multithreaded process; see
pthread_sigmask(3).
RETURN VALUE
R sigprocmask ()
returns 0 on success and -1 on error.
ERRORS
EINVAL
The value specified in
how
was invalid.
CONFORMING TO
POSIX.1-2001.
NOTES
It is not possible to block
R SIGKILL or SIGSTOP .
Attempts to do so are silently ignored.
If
R SIGBUS ,
R SIGFPE ,
R SIGILL ,
or
R 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.
SEE ALSO
kill(2),
pause(2),
sigaction(2),
signal(2),
sigpending(2),
sigprocmask(2),
sigqueue(2),
sigsuspend(2),
pthread_sigmask(3),
sigsetops(3),
signal(7)