Provided by: manpages-posix-dev_2.16-1_all bug

NAME

       sighold, sigignore, sigpause, sigrelse, sigset - signal management

SYNOPSIS

       #include <signal.h>

       int sighold(int sig);
       int sigignore(int sig);
       int sigpause(int sig);
       int sigrelse(int sig);
       void (*sigset(int sig, void (*disp)(int)))(int);

DESCRIPTION

       Use of any of these functions is unspecified in a multi-threaded process.

       The  sighold(),  sigignore(),  sigpause(),  sigrelse(),  and  sigset()  functions  provide
       simplified signal management.

       The sigset() function shall modify signal dispositions. The  sig  argument  specifies  the
       signal,  which  may  be any signal except SIGKILL and SIGSTOP. The disp argument specifies
       the signal's disposition, which may be SIG_DFL,  SIG_IGN,  or  the  address  of  a  signal
       handler.  If  sigset()  is  used,  and disp is the address of a signal handler, the system
       shall add sig to the calling process' signal mask before  executing  the  signal  handler;
       when the signal handler returns, the system shall restore the calling process' signal mask
       to its state prior to the delivery of the signal. In addition, if sigset()  is  used,  and
       disp  is  equal  to  SIG_HOLD,  sig shall be added to the calling process' signal mask and
       sig's disposition shall remain unchanged. If sigset() is used, and disp is  not  equal  to
       SIG_HOLD, sig shall be removed from the calling process' signal mask.

       The sighold() function shall add sig to the calling process' signal mask.

       The sigrelse() function shall remove sig from the calling process' signal mask.

       The sigignore() function shall set the disposition of sig to SIG_IGN.

       The sigpause() function shall remove sig from the calling process' signal mask and suspend
       the calling process until a signal is received. The sigpause() function shall restore  the
       process' signal mask to its original state before returning.

       If  the  action  for  the SIGCHLD signal is set to SIG_IGN, child processes of the calling
       processes shall not be transformed into zombie  processes  when  they  terminate.  If  the
       calling  process  subsequently waits for its children, and the process has no unwaited-for
       children that were transformed into zombie processes, it shall  block  until  all  of  its
       children  terminate,  and  wait(),  waitid(),  and  waitpid()  shall fail and set errno to
       [ECHILD].

RETURN VALUE

       Upon successful completion, sigset() shall return SIG_HOLD if the signal had been  blocked
       and the signal's previous disposition if it had not been blocked. Otherwise, SIG_ERR shall
       be returned and errno set to indicate the error.

       The sigpause() function shall suspend execution of the thread until a signal is  received,
       whereupon it shall return -1 and set errno to [EINTR].

       For  all  other functions, upon successful completion, 0 shall be returned.  Otherwise, -1
       shall be returned and errno set to indicate the error.

ERRORS

       These functions shall fail if:

       EINVAL The sig argument is an illegal signal number.

       The sigset() and sigignore() functions shall fail if:

       EINVAL An attempt is made to catch a signal that cannot be caught, or to ignore  a  signal
              that cannot be ignored.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       The  sigaction()  function  provides  a  more  comprehensive  and  reliable  mechanism for
       controlling signals; new applications should use sigaction() rather than sigset().

       The sighold() function, in conjunction with sigrelse()  or  sigpause(),  may  be  used  to
       establish critical regions of code that require the delivery of a signal to be temporarily
       deferred.

       The sigsuspend()  function  should  be  used  in  preference  to  sigpause()  for  broader
       portability.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       Signal  Concepts  ,  exec() , pause() , sigaction() , signal() , sigsuspend() , waitid() ,
       the Base Definitions volume of IEEE Std 1003.1-2001, <signal.h>

COPYRIGHT

       Portions of this text are reprinted and  reproduced  in  electronic  form  from  IEEE  Std
       1003.1,  2003  Edition,  Standard  for Information Technology -- Portable Operating System
       Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003  by
       the  Institute  of  Electrical  and  Electronics Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE  and  The  Open  Group
       Standard,  the  original  IEEE  and  The  Open Group Standard is the referee document. The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .