Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sigaction(2) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

exit(2)

kill(2)

pause(2)

sigaltstack(2)

signal(2)

sigprocmask(2)

sigsend(2)

sigsuspend(2)

wait(2)

sigsetops(3C)

siginfo(5)

signal(5)

ucontext(5)

kill(1)



sigaction(2)                     UNIX System V                     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.

            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


10/89                                                                    Page 1







sigaction(2)                     UNIX System V                     sigaction(2)


                                the signal handler (SIGILL, SIGTRAP, and SIGPWR
                                cannot be automatically reset when delivered;
                                the system silently enforces this restriction).

            SANODEFER          If set and the signal is caught, the signal
                                will not be automatically 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, two additional arguments 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 signal 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 ucontext(5)].

            SANOCLDWAIT        If set and sig equals SIGCHLD, the system will
                                not create zombie processes when children of
                                the calling 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 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 SIGSTOP.

      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.





Page 2                                                                    10/89







sigaction(2)                     UNIX System V                     sigaction(2)


SEE ALSO
      intro(2), exit(2), kill(2), pause(2), sigaltstack(2), signal(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)].












































10/89                                                                    Page 3





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