+.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.