diff options
Diffstat (limited to 'usr/src/man/man3ucb/signal.3ucb')
-rw-r--r-- | usr/src/man/man3ucb/signal.3ucb | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/usr/src/man/man3ucb/signal.3ucb b/usr/src/man/man3ucb/signal.3ucb new file mode 100644 index 0000000000..20e5376a4a --- /dev/null +++ b/usr/src/man/man3ucb/signal.3ucb @@ -0,0 +1,115 @@ +'\" te +.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved. +.\" Copyright (c) 1980 Regents of the University of California. All rights reserved. The Berkeley software License Agreement specifies the terms and conditions for redistribution. +.TH signal 3UCB "30 Oct 2007" "SunOS 5.11" "SunOS/BSD Compatibility Library Functions" +.SH NAME +signal \- simplified software signal facilities +.SH SYNOPSIS +.LP +.nf +\fB/usr/ucb/cc\fR [ \fIflag\fR ... ] \fIfile\fR ... +#include <signal.h> + +\fBvoid\fR (\fB*signal(\fR\fIsig\fR, \fIfunc\fR))() +\fBint\fR \fIsig\fR; +\fBvoid\fR (\fB*\fR\fIfunc\fR)(); +.fi + +.SH DESCRIPTION +.sp +.LP +\fBsignal()\fR is a simplified interface to the more general \fBsigvec\fR(3UCB) +facility. Programs that use \fBsignal()\fR in preference to \fBsigvec()\fR are +more likely to be portable to all systems. +.sp +.LP +A signal is generated by some abnormal event, initiated by a user at a terminal +(quit, interrupt, stop), by a program error (bus error, etc.), by request of +another program (kill), or when a process is stopped because it wishes to +access its control terminal while in the background (see \fBtermio\fR(7I)). +Signals are optionally generated when a process resumes after being stopped, +when the status of child processes changes, or when input is ready at the +control terminal. Most signals cause termination of the receiving process if no +action is taken; some signals instead cause the process receiving them to be +stopped, or are simply discarded if the process has not requested otherwise. +Except for the \fBSIGKILL\fR and \fBSIGSTOP\fR signals, the \fBsignal()\fR call +allows signals either to be ignored or to interrupt to a specified location. +See \fBsigvec\fR(3UCB) for a complete list of the signals. +.sp +.LP +If \fIfunc\fR is \fBSIG_DFL\fR, the default action for signal \fIsig\fR is +reinstated; this default is termination (with a core image for starred signals) +except for signals marked with \(bu or a dagger. Signals marked with \(bu are +discarded if the action is \fBSIG_DFL\fR; signals marked with a dagger cause +the process to stop. If \fIfunc\fR is \fBSIG_IGN\fR the signal is subsequently +ignored and pending instances of the signal are discarded. Otherwise, when the +signal occurs further occurrences of the signal are automatically blocked and +\fIfunc\fR is called. +.sp +.LP +A return from the function unblocks the handled signal and continues the +process at the point it was interrupted. +.sp +.LP +If a caught signal occurs during certain functions, terminating the call +prematurely, the call is automatically restarted. In particular this can occur +during a \fBread\fR(2) or \fBwrite\fR(2) on a slow device (such as a terminal; +but not a file) and during a \fBwait\fR(3C). +.sp +.LP +The value of \fBsignal()\fR is the previous (or initial) value of \fIfunc\fR +for the particular signal. +.sp +.LP +After a \fBfork\fR(2) or \fBvfork\fR(2) the child inherits all signals. An +\fBexec\fR(2) resets all caught signals to the default action; ignored signals +remain ignored. +.SH RETURN VALUES +.sp +.LP +The previous action is returned on a successful call. Otherwise,\fB\(mi1\fR is +returned and \fBerrno\fR is set to indicate the error. +.SH ERRORS +.sp +.LP +\fBsignal()\fR will fail and no action will take place if the following occurs: +.sp +.ne 2 +.mk +.na +\fB\fBEINVAL\fR\fR +.ad +.RS 10n +.rt +\fIsig\fR is not a valid signal number, or is \fBSIGKILL\fR or \fBSIGSTOP\fR. +.RE + +.SH SEE ALSO +.sp +.LP +\fBkill\fR(1), \fBexec\fR(2), \fBfcntl\fR(2), \fBfork\fR(2), +\fBgetitimer\fR(2), \fBgetrlimit\fR(2), \fBkill\fR(2), \fBread\fR(2), +\fBsigaction\fR(2), \fBwrite\fR(2), \fBabort\fR(3C), \fBptrace\fR(3C), +\fBsetjmp\fR(3C), \fBsetjmp\fR(3UCB), \fBsigblock\fR(3UCB), \fBsignal\fR(3C), +\fBsignal.h\fR(3HEAD), \fBsigstack\fR(3UCB), \fBsigvec\fR(3UCB), +\fBwait\fR(3C), \fBwait\fR(3UCB), \fBtermio\fR(7I) +.SH NOTES +.sp +.LP +Use of these interfaces should be restricted to only applications written on +BSD platforms. Use of these interfaces with any of the system libraries or in +multi-threaded applications is unsupported. +.sp +.LP +The handler routine \fIfunc\fR can be declared: +.sp +.in +2 +.nf +void handler(signum) int signum; +.fi +.in -2 + +.sp +.LP +Here \fIsignum\fR is the signal number. See \fBsigvec\fR(3UCB) for more +information. |