SIGHOLD(3P) - phpMan

SIGHOLD(3P)                POSIX Programmer's Manual               SIGHOLD(3P)

PROLOG
       This  manual  page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the  corresponding
       Linux  manual page for details of Linux behavior), or the interface may
       not be implemented on Linux.
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() func-
       tions provide simplified signal management.
       The sigset() function shall modify signal dispositions. The  sig  argu-
       ment  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 sys-
       tem  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 call-
       ing 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' sig-
       nal mask.
       The sigignore() function shall set the disposition of sig to SIG_IGN.
       The sigpause() function shall remove sig from the calling process' sig-
       nal  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 trans-
       formed  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 sig-
       nal 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  sigac-
       tion() 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, <sig-
       nal.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 .

IEEE/The Open Group                  2003                          SIGHOLD(3P)