Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ signal(3C) — UTek W2.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

kill(1)

kill(2)

ptrace(2)

sigblock(2)

sigpause(2)

sigsetmask(2)

sigstack(2)

sigvec(2)

setjmp(3c)

tty(4)



SIGNAL(3C)              COMMAND REFERENCE              SIGNAL(3C)



NAME
     signal - simplified software signal facilities

SYNOPSIS
     #include <signal.h>

     (*signal(sig, func))()
     int (*func)();

DESCRIPTION
     Signal is a simplified interface to the more general
     sigvec(2) facility.

     A signal is generated by some abnormal event, initiated by a
     user at a terminal ( quit, interrupt, stop), by a program
     error (bus error, and so forth), by request of another
     program (kill), or when a process is stopped because it
     wishes to access its control terminal while in the
     background (see tty(4)).  Signals are optionally generated
     when a process resumes after being stopped, when the status
     of child processes changes, or when input is ready at the
     control terminal.  Most signals cause termination of the
     receiving process if no action is taken; some signals
     instead cause the process receiving them to be stopped, or
     are simply discarded if the process has not requested
     otherwise.  Except for the SIGKILL and SIGSTOP signals, the
     signal call allows signals either to be ignored or to cause
     an interrupt to a specified location.  The following is a
     list of all signals with names as in the include file
     <signal.h>.  The sig parameters are listed in the first
     column.

     SIGHUP    1    hangup
     SIGINT    2    interrupt
     SIGQUIT   3*   quit
     SIGILL    4*   illegal instruction (not reset when caught)
     SIGTRAP   5*   trace trap (not reset when caught)
     SIGIOT    6*   IOT instruction
     SIGEMT    7*   EMT instruction
     SIGFPE    8*   floating point exception
     SIGKILL   9    kill (cannot be caught or ignored)
     SIGBUS    10*  bus error
     SIGSEGV   11*  segmentation violation
     SIGSYS    12*  bad argument to system call
     SIGPIPE   13   write on a pipe with no one to read it
     SIGALRM   14   alarm clock
     SIGTERM   15   software termination signal from kill
     SIGURG    16•  urgent condition present on socket,
                    exception condition present on device
     SIGSTOP   17†  stop (cannot be caught or ignored)
     SIGTSTP   18†  stop signal generated from keyboard
     SIGCONT   19•  continue after stop (cannot be blocked)



Printed 10/17/86                                                1





SIGNAL(3C)              COMMAND REFERENCE              SIGNAL(3C)



     SIGCHLD   20•  to parent on child stop or exit
     SIGTTIN   21†  background read attempted from control terminal
     SIGTTOU   22†  background write attempted to control terminal
     SIGIO     23•  I/O is possible on a descriptor (see fcntl(2))
     SIGXCPU   24   CPU time limit exceeded (see setrlimit(2))
     SIGXFSZ   25   file size limit exceeded (see setrlimit(2))
     SIGVTALRM 26   virtual time alarm (see setitimer(2))
     SIGPROF   27   profiling timer alarm (see setitimer(2))

     The following signals are not yet implemented, but are
     planned for a later release of the system:

     SIGUSR1   28   user-defined signal 1
     SIGUSR2   29   user-defined signal 2
     SIGCLD    30   death of a child
     SIGPWR    31   power fail

     The starred signals in the list above cause a core image if
     not caught or ignored.

     If func is SIG_DFL, the default action for signal sig is
     reinstated; this default is termination (with a core image
     for starred signals) except for signals marked with @ or
     '
|
+'. Signals marked with • are discarded if the action is SIG_DFL; signals marked with † cause the process to stop. If func is SIG_IGN, the signal is subsequently ignored and pending instances of the signal are discarded. Otherwise, when the signal occurs further occurences of the signal are automatically blocked and func is called. A return from the function unblocks the handled signal and continues the process at the point it was interrupted. Note: Unlike previous signal facilities, the handler func remains installed after a signal has been delivered. If a caught signal occurs during certain system calls, causing the call to terminate prematurely, the call is automatically restarted. In particular, this can occur during a read(2) or write(2) on a slow device (such as a terminal; but not a file) and during a wait(2). The value of signal is the previous (or initial) value of func for the particular signal. After a fork(2) or vfork(2) the child inherits all signals. Execve(2) resets all caught signals to the default action; ignored signals remain ignored. DIAGNOSTICS Signal will fail and no action will take place if one of the Printed 10/17/86 2


SIGNAL(3C)              COMMAND REFERENCE              SIGNAL(3C)



     following occurs:

     [EINVAL]
         Sig is not a valid signal number.

     [EINVAL]
         An attempt is made to ignore or supply a handler for
         SIGKILL or SIGSTOP.

     [EINVAL]
         An attempt is made to ignore SIGCONT (by default SIGCONT
         is ignored).

RETURN VALUE
     The previous action is returned on a successful call.
     Otherwise, -1 is returned and errno is set to indicate the
     error.

SEE ALSO
     kill(1), kill(2), ptrace(2), sigblock(2), sigpause(2),
     sigsetmask(2), sigstack(2), sigvec(2), setjmp(3c), tty(4).


































Printed 10/17/86                                                3





































































%%index%%
na:72,82;
sy:154,444;
de:598,2429;3171,2579;
di:5750,156;6050,297;
rv:6347,245;
se:6592,354;
%%index%%000000000126

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