signal \- catch or ignore signals
.B (*signal(sig, func))();
is generated by some abnormal event,
initiated either by user at a terminal (quit, interrupt),
by a program error (bus error, etc.),
or by request of another program (kill).
cause termination of the receiving process,
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
.ta \w'SIGMMMM 'u +\w'15* 'u
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)
SIGSEGV 11* segmentation violation
SIGSYS 12* bad argument to system call
SIGPIPE 13 write on a pipe with no one to read it
SIGTERM 15 software termination signal
The starred signals in the list above cause a core image
if not caught or ignored.
is SIG_DFL, the default action
is reinstated; this default is termination,
sometimes with a core image.
is SIG_IGN the signal is ignored.
signal number as argument.
A return from the function will
continue the process at the point it was interrupted.
a signal is reset to SIG_DFL after being caught.
the catching routine must
When a caught signal occurs
during certain system calls, the call terminates prematurely.
In particular this can occur
on a slow device (like a terminal; but not a file);
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 status.
The user's program may then, if it wishes,
is the previous (or initial)
for the particular signal.
caught signals to default action.
The value (int)\-1 is returned if the
given signal is out of range.
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
argument are problematical.
On the VAX-11, odd values for
.B sys signal; sig; label
default action is reinstated.
is odd, the signal is ignored.
specifies an address in the process
where an interrupt is simulated.
An RTI or RTT instruction will return from the
The following defines the mapping of hardware traps to signals:
.ta \w' Floating divide by zero 'u +\w'15* 'u
Integer division by zero SIGFPE
Floating underflow SIGFPE
Floating division by zero SIGFPE
Decimal division by zero SIGFPE
Access control (i.e. protection
except length violation SIGBUS
Translation not valid, and
Length access control SIGSEGV
Reserved instruction SIGILL
Customer-reserved instr. SIGEMT
Reserved addressing SIGILL
Compatibility-mode SIGEMT