Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ signal(2) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

kill(2)

pause(2)

sigaction(2)

sigsend(2)

wait(2)

waitid(2)

signal(5)



signal(2)                 SYSTEM CALLS                  signal(2)



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

SYNOPSIS
     #include <signal.h>
     void (*signal(int sig, void (*disp)(int)))(int);
     void (*sigset(int sig, void (*disp)(int)))(int);
     int sighold(int sig);
     int sigrelse(int sig);
     int sigignore(int sig);
     int sigpause(int sig);

DESCRIPTION
     These functions provide  simplified  signal  management  for
     application  processes.  See signal(5) for an explanation of
     general signal concepts.

     signal and sigset are used to  modify  signal  dispositions.
     sig  specifies  the  signal,  which may be any signal except
     SIGKILL and SIGSTOP.  disp specifies the  signal's  disposi-
     tion,  which  may  be  SIGDFL, SIGIGN, or the address of a
     signal handler.  If signal is used, disp is the address of a
     signal  handler,  and sig is not SIGILL, SIGTRAP, or SIGPWR,
     the system first sets the signal's  disposition  to  SIGDFL
     before  executing the signal handler.  If sigset is used and
     disp is the address of a signal handler, the system adds sig
     to  the  calling  process's signal mask before executing the
     signal handler; when the signal handler returns, the  system
     restores  the  calling  process's  signal  mask to its state
     prior to the delivery of the signal.  In addition, if sigset
     is  used  and disp is equal to SIGHOLD, sig is added to the
     calling process's signal mask and the  signal's  disposition
     remains unchanged.

     sighold adds sig to the calling process's signal mask.

     sigrelse removes sig from the calling process's signal mask.

     sigignore sets the disposition of sig to SIGIGN.

     sigpause removes sig from the calling process's signal  mask
     and suspends the calling process until a signal is received.

     These functions fail if any of the following are true.

     EINVAL         The value of the sig argument is not a  valid
                    signal or is equal to SIGKILL or SIGSTOP.

     EINTR          A signal was caught during  the  system  call
                    sigpause.




                                                                1





signal(2)                 SYSTEM CALLS                  signal(2)



NOTES
     sighold 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.  If  signal
     or  sigset  is used to set SIGCHLD's disposition to a signal
     handler, SIGCHLD will not be sent when the calling process's
     children are stopped or continued.

     If any of the above functions  are  used  to  set  SIGCHLD's
     disposition   to   SIGIGN,   the  calling  process's  child
     processes will not create zombie processes  when  they  ter-
     minate  [see  exit(2)].  If the calling process subsequently
     waits for its children, it blocks until all of its  children
     terminate;  it  then returns a value of -1 with errno set to
     ECHILD [see wait(2), waitid(2)].

DIAGNOSTICS
     On success, signal returns the  signal's  previous  disposi-
     tion.   On  failure,  it  returns  SIGERR and sets errno to
     indicate the error.

     On success, sigset returns SIGHOLD if the signal  had  been
     blocked  or  the signal's previous disposition if it had not
     been blocked.  On failure, it returns SIGERR and sets errno
     to indicate the error.

     All other functions return zero  on  success.   On  failure,
     they return -1 and set errno to indicate the error.

SEE ALSO
     kill(2),  pause(2),   sigaction(2),   sigsend(2),   wait(2),
     waitid(2), signal(5).























                                                                2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026