SIGPROCMASK(2)             Linux Programmer's Manual            SIGPROCMASK(2)
NAME
       sigprocmask - examine and change blocked signals

SYNOPSIS
       #include <signal.h>

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

DESCRIPTION
       sigprocmask()  is  used to change the signal mask, the set of currently
       blocked signals.  The behaviour 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).

RETURN VALUE
       sigprocmask() returns 0 on success and -1 on error.

ERRORS
       EINVAL The value specified in how was invalid.

NOTES
       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.

CONFORMING TO
       POSIX.1-2001.

SEE ALSO
       kill(2),  pause(2),  sigaction(2),  signal(2),  sigpending(2), sigproc-
       mask(2), sigqueue(2), sigsuspend(2), pthread_sigmask(3),  sigsetops(3),
       signal(7)

Linux 2.6.13                      2005-09-15                    SIGPROCMASK(2)