sigprocmask(2)




NAME

     sigprocmask - change and/or examine caller's signal mask


SYNOPSIS

     #include <signal.h>

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


DESCRIPTION

     The sigprocmask() function is used to examine and/or  change
     the  caller's  signal  mask. If the value is  SIG_BLOCK, the
     set pointed to by the  set argument is added to the  current
     signal  mask.  If the value is  SIG_UNBLOCK, the set pointed
     by the  set argument is  removed  from  the  current  signal
     mask.  If the value is  SIG_SETMASK, the current signal mask
     is replaced by the set pointed to by the  set  argument.  If
     the  oset argument is not  NULL, the previous mask is stored
     in the space pointed to by oset. If the value of the
      set argument is  NULL, the value  how  is  not  significant
     and  the  caller's  signal mask is unchanged; thus, the call
     can be used to inquire about currently blocked signals.

     If there are any pending unblocked signals after the call to
     sigprocmask(),  at  least  one  of  those  signals  will  be
     delivered before the call to sigprocmask() returns.

     It is not possible to block those  signals  that  cannot  be
     ignored this restriction is silently  imposed by the system.
     See sigaction(2).

     If sigprocmask() fails, the  caller's  signal  mask  is  not
     changed.


RETURN VALUES

     Upon successful completion, 0 is returned. Otherwise, -1  is
     returned and errno is set to indicate the error.


ERRORS

     The sigprocmask() function will fail if:

     EFAULT
           The  set  or   oset  argument  points  to  an  illegal
           address.

     EINVAL
           The value of the  how argument is not equal to one  of
           the defined values.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:
     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | MT-Level                    | Async-Signal-Safe           |
    |_____________________________|_____________________________|


SEE ALSO

     sigaction(2),           signal(3C),           sigsetops(3C),
     thr_sigsetmask(3THR), attributes(5), signal(3HEAD)


NOTES

     In  a  multithreaded  program,  the  call  to   sigpromask()
     impacts  only the calling thread's signal mask and is there-
     fore identical to a call to  thr_sigsetmask(3THR).

     Signals that  are  generated  synchronously  should  not  be
     masked.  If  such  a  signal  is  blocked and delivered, the
     receiving process is killed.


Man(1) output converted with man2html