Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sigaction(2) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

exit(2)

kill(2)

pause(2)

sigaltstack(2)

nal(2)

sigprocmask(2)

sigsend(2)

sigsuspend(2)

wait(2)

sigsetops(3C)

siginfo(5)

signal(5)

ucontext(5)

kill(1)



sigaction(2)              SYSTEM CALLS               sigaction(2)



NAME
     sigaction - detailed signal management

SYNOPSIS
     #include <signal.h>

     int sigaction(int sig, const struct sigaction *act,
          struct sigaction *oact);

DESCRIPTION
     sigaction allows  the  calling  process  to  examine  and/or
     specify  the  action  to  be taken on delivery of a specific
     signal.  [See signal(5) for an explanation of general signal
     concepts.]  sig specifies the signal and can be assigned any
     of the signals specified in  signal(5)  except  SIGKILL  and
     SIGSTOP

     If the argument act is not NULL, it points  to  a  structure
     specifying  the  new action to be taken when delivering sig.
     If the argument oact is not NULL, it points to  a  structure
     where  the  action  previously  associated with sig is to be
     stored on return from sigaction.

     The sigaction structure includes the following members:

          void         (*sahandler)();
          sigsett     samask;
          int          saflags;

     sahandler specifies the disposition of the signal  and  may
     take any of the values specified in signal(5).

     samask specifies a set of signals to be blocked  while  the
     signal  handler  is active.  On entry to the signal handler,
     that set of signals is added to the set of  signals  already
     being  blocked  when  the signal is delivered.  In addition,
     the signal that caused the handler to be executed will  also
     be  blocked,  unless the SANODEFER flag has been specified.
     SIGSTOP and SIGKILL cannot be blocked (the  system  silently
     enforces this restriction).

     saflags specifies  a  set  of  flags  used  to  modify  the
     delivery of the signal.  It is formed by a logical OR of any
     of the following values:

          SAONSTACK          If set and the signal is caught and
                              an  alternate signal stack has been
                              declared with  sigaltstack(2),  the
                              signal  is delivered to the calling
                              process on that stack.   Otherwise,
                              the signal is delivered on the same
                              stack as the main program.



                                                                1





sigaction(2)              SYSTEM CALLS               sigaction(2)



          SARESETHAND        If set and the  signal  is  caught,
                              the  disposition  of  the signal is
                              reset to  SIGDFL  and  the  signal
                              will not be blocked on entry to the
                              signal  handler  (SIGILL,  SIGTRAP,
                              and  SIGPWR cannot be automatically
                              reset when  delivered;  the  system
                              silently   enforces  this  restric-
                              tion).

          SANODEFER          If set and the  signal  is  caught,
                              the  signal  will  not be automati-
                              cally blocked by the  kernel  while
                              it is being caught.

          SARESTART          If set and the signal is caught,  a
                              system  call that is interrupted by
                              the  execution  of  this   signal's
                              handler  is transparently restarted
                              by  the  system.   Otherwise,  that
                              system call returns an EINTR error.

          SASIGINFO          If  cleared  and  the   signal   is
                              caught,  sig  is passed as the only
                              argument  to  the   signal-catching
                              function.  If set and the signal is
                              caught, pending signals of type sig
                              are  reliably queued to the calling
                              process and  two  additional  argu-
                              ments  are  passed  to  the signal-
                              catching function.  If  the  second
                              argument  is  not equal to NULL, it
                              points  to  a  siginfot  structure
                              containing  the reason why the sig-
                              nal was generated [see siginfo(5)];
                              the  third  argument  points  to  a
                              ucontextt structure containing the
                              receiving  process's  context  when
                              the signal was delivered [see ucon-
                              text(5)].

          SANOCLDWAIT        If set and sig equals SIGCHLD,  the
                              system   will   not  create  zombie
                              processes when children of the cal-
                              ling  process exit.  If the calling
                              process   subsequently   issues   a
                              wait(2), it blocks until all of the
                              calling process's  child  processes
                              terminate, and then returns a value
                              of -1 with errno set to ECHILD.

          SANOCLDSTOP        If set and sig equals SIGCHLD,  sig



                                                                2





sigaction(2)              SYSTEM CALLS               sigaction(2)



                              will  not  be  sent  to the calling
                              process when  its  child  processes
                              stop or continue.

     sigaction fails if any of the following is true:

     EINVAL         The value of the sig argument is not a  valid
                    signal  number or is equal to SIGKILL or SIG-
                    STOP.

     EFAULT         act or  oact  points  outside  the  process's
                    allocated address space.

DIAGNOSTICS
     On success, sigaction returns zero.  On failure, it  returns
     -1 and sets errno to indicate the error.

SEE ALSO
     intro(2), exit(2), kill(2), pause(2),  sigaltstack(2),  sig-
     nal(2),  sigprocmask(2), sigsend(2), sigsuspend(2), wait(2),
     sigsetops(3C), siginfo(5), signal(5), ucontext(5).   kill(1)
     in the User's Reference Manual.

NOTES
     If the system call is reading from or writing to a  terminal
     and  the  terminal's  NOFLSH  bit  is  cleared,  data may be
     flushed [see termio(7)].




























                                                                3



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