Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ signal(2) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

kill(1)

intro(2)

blockproc(2)

kill(2)

pause(2)

ptrace(2)

sigaction(2)

sigset(2)

wait(2)

setjmp(3C)

sigvec(3B)

pthread_kill(3P)

signal(5)



SIGNAL(2)                                                            SIGNAL(2)



NAME
     signal - software signal facilities (System V)

C SYNOPSIS
     #include <signal.h>

     C:
       void (*signal (int sig, void (*func)()))();
     C++:
       void (*signal (int sig, void (*func)(int)))(int);

     #if XOPENSOURCE
       void (*signal (int sig, void (*func)(int)))(int);
     #endif

DESCRIPTION
     signal allows the calling process to choose one of three ways in which it
     is possible to handle the receipt of a specific signal.  sig specifies
     the signal and func specifies the choice.

     For a list of valid signals and a general description of the signal
     mechanism please see signal(5).

     [EINVAL]  signal will fail if sig is an illegal signal number, including
               SIGKILL and SIGSTOP.

     [EINVAL]  signal will fail if an illegal operation is requested (for
               example, ignoring SIGCONT, which is ignored by default).

SEE ALSO
     kill(1), intro(2), blockproc(2), kill(2), pause(2), ptrace(2),
     sigaction(2), sigset(2), wait(2), setjmp(3C), sigvec(3B),
     pthread_kill(3P), signal(5)

DIAGNOSTICS
     Upon successful completion, signal returns the previous value of func for
     the specified signal sig.  Otherwise, a value of SIGERR is returned and
     errno is set to indicate the error.  SIGERR is defined in the header
     file <sys/signal.h>.

WARNINGS
     Signals raised by any instruction in the instruction stream, including
     SIGFPE, SIGILL, SIGEMT, SIGBUS, and SIGSEGV, will cause infinite loops if
     their handler returns, or the action is set to SIGIGN. This is because
     the exception PC at the time of the signal points to the instruction that
     raised the exception or signal, and resuming the process will re-execute
     that same instruction.

     The POSIX signal routines (sigaction(2), sigpending(2), sigprocmask(2),
     sigsuspend(2), sigsetjmp(3)), and the 4.3BSD signal routines (sigvec(3B),
     signal(3B), sigblock(3B), sigpause(3B), sigsetmask(3B)) must NEVER be
     used with signal(2) or sigset(2).



                                                                        Page 1





SIGNAL(2)                                                            SIGNAL(2)



     Before entering the signal-catching function, the value of func for the
     caught signal will be set to SIGDFL unless the signal is SIGILL,
     SIGTRAP, or SIGPWR.  This means that before exiting the handler, a signal
     call is necessary to again set the disposition to catch the signal.

     Note that handlers installed by signal execute with no signals blocked,
     not even the one that invoked the handler.
















































                                                                        Page 2



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