sigaction

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

NAME

       sigaction,  sigprocmask,  sigpending,  sigsuspend  - POSIX
       signal handling functions.



SYNOPSIS

       #include <signal.h>


       int sigaction(int signum,  const  struct  sigaction  *act,
       struct sigaction *oldact);

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

       int sigpending(sigset_t *set);

       int sigsuspend(const sigset_t *mask);



DESCRIPTION

       The sigaction system call is used to change the action for
       a  signal.   If act is non-null, the new action for signal
       signum is installed from act.  If oldact is non-null,  the
       previous action is saved in oldact.

       The sigaction structure is defined as

              struct sigaction {
                  void (*sa_handler)();
                  sigset_t sa_mask;
                  int sa_flags;
                  void (*sa_restorer)(void);
              }

       sa_handler  may be SIG_DFL for the default action, SIG_IGN
       to ignore this signal, or a pointer to a  signal  handling
       function.

       sa_mask  gives  a  mask of signals which should be blocked
       during execution of the signal handler.

       sa_flags is the bitwise OR of zero or more of the  follow-
       ing flags

              SA_NOCLDSTOP
                     Do  not  generate SIGCHLD signals when child
                     processes terminate.

              SA_ONESHOT
                     Restore the signal  action  to  the  default
                     state  once  the  signal  handler  has  been
                     called.  This is the default behavior.

              SA_RESTART
                     The opposite to SA_ONESHOT, do  not  restore
                     the  signal  action.  This provides behavior
                     compatible with BSD signal semantics.

              SA_NOMASK
                     Do  not  prevent  the  signal   from   being
                     received from within its own signal handler.

       The sa_restorer element is  obsolete  and  should  not  be
       used.

       The  sigprocmask  call  is used to change the list of cur-
       rently blocked signals. The behavior of the call is depen-
       dent 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 cur-
                     rent 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.

       The sigpending call allows the examination of pending sig-
       nals (ones which have been  raised  while  blocked).   The
       signal mask of pending signals is stored in set.

       The  sigsuspend  call temporarily replaces the signal mask
       for the process with that given by mask and then  suspends
       the process until a signal is received.



RETURN VALUES

       sigaction, sigprocmask, sigpending and sigsuspend return 0
       on success and -1 on error.



ERRORS

       EINVAL An invalid signal was specified.  This will also be
              generated  if  an  attempt  is  made  to change the
              action for SIGKILL  or  SIGSTOP,  which  cannot  be
              caught.

       EFAULT act,  oldact  or the signal handler point to memory
              which is not a valid part of  the  process  address
              space.

       EINTR  System call was interrupted.



NOTES

       It  is  not  possible to block SIGKILL or SIGSTOP with the
       sigprocmask call.  Attempts to  do  so  will  be  silently
       ignored.

       The   POSIX   spec  only  defines  SA_NOCLDSTOP.   Use  of
       SA_ONESHOT and SA_RESTART is non-portable.

       sigaction can be called with a  null  second  argument  to
       query  the  current signal handler. It can also be used to
       check whether a given signal  is  valid  for  the  current
       machine  by  calling  it  with null second and third argu-
       ments.

       See sigsetops(3) for details on manipulating signal  sets.


CONFORMING TO

       POSIX



SEE ALSO

       kill(1), kill(2), killpg(2), pause(2), raise(3), siginter-
       rupt(3), signal(2), signal(7), sigsetops(3), sigvec(2)
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.