.th SIGNAL II 8/5/73
.sh NAME
signal \*- catch or ignore signals
.sh SYNOPSIS
(signal = 48.)
.br
.ft B
sys  signal; sig; value
.s3
signal(sig, func)
.br
int (*func)();
.ft R
.sh DESCRIPTION
When the signal
defined by
.it sig
is sent to the current process,
it is to be treated according to
.it value.
The following is the list of signals:
.s3
.lp +10 5
1	hangup
.lp +10 5
2	interrupt
.lp +10 5
3*	quit
.lp +10 5
4*	illegal instruction
.lp +10 5
5*	trace trap
.lp +10 5
6*	IOT instruction
.lp +10 5
7*	EMT instruction
.lp +10 5
8*	floating point exception
.lp +10 5
9	kill (cannot be caught or ignored)
.lp +10 5
10*	bus error
.lp +10 5
11*	segmentation violation
.lp +10 5
12*	bad argument to sys call
.s3
.i0
If
.it value
is 0, the default system
action applies to the signal.
This is processes termination
with or without a core dump.
If
.it value
is odd, the signal is ignored.
Any other even
.it value
specifies an address in the process
where an interrupt is simulated.
An RTI instruction will return from the
interrupt.
As a signal is caught,
it is reset to 0.
Thus if it is desired to
catch every such signal,
the catching routine must
issue another
.it signal
call.
.s3
The starred signals in the list above
cause core images if not caught and not ignored.
In C,
if
.it func
is 0 or 1, the action is as described above.
If
.it func
is even, it is assumed to be the address
of a function entry point.
When the signal occurs,
the function will be called.
A return from the function will
simulate the RTI.
.s3
After a
.it fork,
the child inherits
all signals.
The
.it exec
call resets all
caught signals to default action.
.sh "SEE ALSO"
kill (I, II)
.sh DIAGNOSTICS
The error bit
(c-bit)
is set if the
given signal is out of range.
In C, a \*-1 indicates an error;
0 indicates success.
