FreeBSD Manual Pages
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 loca- tion. 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 ter- minates prematurely. In particular this can occur during a read or write(2) on a slow device (like a typewriter; but not a file); and dur- ing pause or wait(2). When such a signal occurs, the saved user status 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 sta- tus. 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 prob- lematical. ASSEMBLER (signal = 48.) sys signal; sig; label (old label in r0) If label is 0, default action is reinstated. If label is odd, the sig- nal 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)
NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | DIAGNOSTICS | BUGS | ASSEMBLER
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=signal&sektion=2&manpath=Unix+Seventh+Edition>