Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

signal(2) [v7 man page]

SIGNAL(2)							System Calls Manual							 SIGNAL(2)

NAME
signal - catch or ignore signals SYNOPSIS
#include <signal.h> (*signal(sig, func))() (*func)(); DESCRIPTION
A signal is generated by some abnormal event, initiated either by user at a typewriter (quit, interrupt), by a program error (bus error, etc.), or by request of another program (kill). Normally all signals cause termination of the receiving process, but a signal call allows them either to be ignored or to cause an interrupt to a specified location. Here is the list of signals with names as in the include file. 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 or link with no one to read it SIGALRM 14 alarm clock SIGTERM 15 software termination signal 16 unassigned 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, sometimes with a core image. If func is SIG_IGN the signal is ignored. Otherwise when the signal occurs func will be called with the signal number as argument. A return from the function will continue the process at the point it was interrupted. Except as indicated, a signal is reset to SIG_DFL after being caught. Thus if it is desired to catch every such signal, the catching routine must issue another signal call. When a caught signal occurs during certain system calls, the call terminates prematurely. In particular this can occur during a read or write(2) on a slow device (like a typewriter; but not a file); and during pause or wait(2). When such a signal occurs, the saved user sta- tus is arranged in such a way that when return from the signal-catching takes place, it will appear that the system call returned an error status. The user's program may then, if it wishes, re-execute the call. The value of signal is the previous (or initial) value of func for the particular signal. After a fork(2) the child inherits all signals. Exec(2) resets all caught signals to default action. SEE ALSO
kill(1), kill(2), ptrace(2), setjmp(3) DIAGNOSTICS
The value (int)-1 is returned if the given signal is out of range. BUGS
If a repeated signal arrives before the last one can be reset, there is no chance to catch it. The type specification of the routine and its func argument are problematical. ASSEMBLER
(signal = 48.) sys signal; sig; label (old label in r0) If label is 0, default action is reinstated. If label is odd, the signal is ignored. Any other even label specifies an address in the process where an interrupt is simulated. An RTI or RTT instruction will return from the interrupt. SIGNAL(2)

Check Out this Related Man Page

sigset(3C)																sigset(3C)

NAME
sigset(), sighold(), sigrelse(), sigignore() - signal management SYNOPSIS
DESCRIPTION
The system defines a set of signals that can be delivered to a process. The set of signals is defined in signal(5), along with the meaning and side effects of each signal. An alternate mechanism for handling these signals is defined here. The facilities described here should not be used in conjunction with the other facilities described under signal(2) and sigspace(2). allows the calling process to choose one of four ways to handle the receipt of a specific signal. sig specifies the signal and func speci- fies the action handler. sig can be any one of the signals described under signal(5) except or func is assigned one of four values: or a function address. The actions prescribed by and are described under signal(5). The action pre- scribed by and function address are described below: Hold signal. The signal sig is held upon receipt. Any pending signal of this signal type remains held. Only one signal of each type is held. Note: the signals and cannot be held. function address Catch signal. func must be a pointer to a function, the signal-catching handler, that is called when signal sig occurs. specifies that the process calls this function upon receipt of signal sig. Any pending signal of this type is released. This handler address is retained across calls to the other signal management functions listed here. Upon receipt of signal sig, the receiving process executes the signal-catching function pointed to by func as described under signal(5) with the follow- ing differences: Before calling the signal-catching handler, the defined action of sig is set to During a normal return from the signal- catching handler, the defined action is restored to func and any held signal of this type is released. If a non-local goto (longjmp(3C)) is taken, must be called to restore the defined action to func and release any held signal of this type. holds the signal sig. restores the defined action of sig to that specified previously by and are used to establish critical regions of code. is analogous to raising the priority level and deferring or holding a signal until the priority is lowered by sets the action for signal sig to (see signal(5)). RETURN VALUE
Upon successful completion, returns the previous value of the defined action for the specified signal sig. Otherwise, a value of is returned and is set to indicate the error. is defined in For the other functions, a 0 value indicates that the call succeeded. A -1 return value indicates an error occurred and is set to indicate the reason. ERRORS
fails and the defined action for sig is not changed if any of the following occur: The func argument points to memory that is not a valid part of the process address space. Reliable detection of this error is implementation dependent. and and fail and the defined action for sig is not changed if any of the following occur: sig is not a valid signal number. An attempt is made to ignore, hold, or supply a handler for a signal that cannot be ignored, held, or caught; see signal(5). WARNINGS
These signal facilities should not be used in conjunction with signal(2) and sigspace(2). SEE ALSO
kill(1), kill(2), pause(2), signal(2), sigspace(2), wait(2), abort(3C), setjmp(3C), sigpause(3C), signal(5). STANDARDS CONFORMANCE
sigset(3C)
Man Page