summaryrefslogtreecommitdiffstats
path: root/man0p/signal.h.0p
diff options
context:
space:
mode:
Diffstat (limited to 'man0p/signal.h.0p')
-rw-r--r--man0p/signal.h.0p788
1 files changed, 788 insertions, 0 deletions
diff --git a/man0p/signal.h.0p b/man0p/signal.h.0p
new file mode 100644
index 000000000..1cfa3f019
--- /dev/null
+++ b/man0p/signal.h.0p
@@ -0,0 +1,788 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "<signal.h>" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" <signal.h>
+.SH NAME
+signal.h \- signals
+.SH SYNOPSIS
+.LP
+\fB#include <signal.h>\fP
+.SH DESCRIPTION
+.LP
+Some of the functionality described on this reference page extends
+the ISO\ C standard. Applications shall define
+the appropriate feature test macro (see the System Interfaces volume
+of IEEE\ Std\ 1003.1-2001, Section 2.2, The Compilation Environment)
+to enable the visibility of these symbols in this
+header.
+.LP
+The \fI<signal.h>\fP header shall define the following symbolic constants,
+each of which expands to a distinct constant
+expression of the type:
+.sp
+.RS
+.nf
+
+\fBvoid (*)(int)
+\fP
+.fi
+.RE
+.LP
+whose value matches no declarable function.
+.TP 7
+SIG_DFL
+Request for default signal handling.
+.TP 7
+SIG_ERR
+Return value from \fIsignal\fP() in case of error.
+.TP 7
+SIG_HOLD
+Request that signal be held.
+.TP 7
+SIG_IGN
+Request that signal be ignored.
+.sp
+.LP
+The following data types shall be defined through \fBtypedef\fP:
+.TP 7
+\fBsig_atomic_t\fP
+Possibly volatile-qualified integer type of an object that can be
+accessed as an atomic entity, even in the presence of
+asynchronous interrupts.
+.TP 7
+\fBsigset_t\fP
+Integer or structure type of an object used to represent sets of signals.
+.TP 7
+\fBpid_t\fP
+As
+described in \fI<sys/types.h>\fP .
+.sp
+.LP
+The \fI<signal.h>\fP header shall define the \fBsigevent\fP structure,
+which has at least the following members:
+.sp
+.RS
+.nf
+
+\fBint sigev_notify \fP Notification type. \fB
+int sigev_signo \fP Signal number. \fB
+union sigval sigev_value \fP Signal value. \fB
+void(*)(union sigval) sigev_notify_function \fP Notification function. \fB
+(pthread_attr_t *) sigev_notify_attributes\fP Notification attributes. \fB
+\fP
+.fi
+.RE
+.LP
+The following values of \fIsigev_notify\fP shall be defined:
+.TP 7
+SIGEV_NONE
+No asynchronous notification is delivered when the event of interest
+occurs.
+.TP 7
+SIGEV_SIGNAL
+A queued signal, with an application-defined value, is generated when
+the event of interest occurs.
+.TP 7
+SIGEV_THREAD
+A notification function is called to perform notification.
+.sp
+.LP
+The \fBsigval\fP union shall be defined as:
+.sp
+.RS
+.nf
+
+\fBint sival_int \fP Integer signal value. \fB
+void *sival_ptr \fP Pointer signal value. \fB
+\fP
+.fi
+.RE
+.LP
+This header shall also declare the macros SIGRTMIN and SIGRTMAX, which
+evaluate to integer expressions, and specify a range of
+signal numbers that are reserved for application use and for which
+the realtime signal behavior specified in this volume of
+IEEE\ Std\ 1003.1-2001 is supported. The signal numbers in this range
+do not overlap any of the signals specified in the
+following table.
+.LP
+The range SIGRTMIN through SIGRTMAX inclusive shall include at least
+{RTSIG_MAX} signal numbers.
+.LP
+It is implementation-defined whether realtime signal behavior is supported
+for other signals.
+.LP
+This header also declares the constants that are used to refer to
+the signals that occur in the system. Signals defined here
+begin with the letters SIG. Each of the signals have distinct positive
+integer values. The value 0 is reserved for use as the null
+signal (see \fIkill\fP()). Additional implementation-defined signals
+may occur in the
+system.
+.LP
+The
+ISO\ C standard only requires the signal names SIGABRT, SIGFPE, SIGILL,
+SIGINT, SIGSEGV, and SIGTERM to be defined.
+.LP
+The following signals shall be supported on all implementations (default
+actions are explained below the table):
+.TS C
+center; l1 l1 lw(40).
+\fBSignal\fP \fBDefault Action\fP T{
+.na
+\fBDescription\fP
+.ad
+T}
+SIGABRT A T{
+.na
+Process abort signal.
+.ad
+T}
+SIGALRM T T{
+.na
+Alarm clock.
+.ad
+T}
+SIGBUS A T{
+.na
+Access to an undefined portion of a memory object.
+.ad
+T}
+SIGCHLD I T{
+.na
+Child process terminated, stopped,
+.ad
+T}
+\ \ T{
+.na
+or continued.
+.ad
+T}
+SIGCONT C T{
+.na
+Continue executing, if stopped.
+.ad
+T}
+SIGFPE A T{
+.na
+Erroneous arithmetic operation.
+.ad
+T}
+SIGHUP T T{
+.na
+Hangup.
+.ad
+T}
+SIGILL A T{
+.na
+Illegal instruction.
+.ad
+T}
+SIGINT T T{
+.na
+Terminal interrupt signal.
+.ad
+T}
+SIGKILL T T{
+.na
+Kill (cannot be caught or ignored).
+.ad
+T}
+SIGPIPE T T{
+.na
+Write on a pipe with no one to read it.
+.ad
+T}
+SIGQUIT A T{
+.na
+Terminal quit signal.
+.ad
+T}
+SIGSEGV A T{
+.na
+Invalid memory reference.
+.ad
+T}
+SIGSTOP S T{
+.na
+Stop executing (cannot be caught or ignored).
+.ad
+T}
+SIGTERM T T{
+.na
+Termination signal.
+.ad
+T}
+SIGTSTP S T{
+.na
+Terminal stop signal.
+.ad
+T}
+SIGTTIN S T{
+.na
+Background process attempting read.
+.ad
+T}
+SIGTTOU S T{
+.na
+Background process attempting write.
+.ad
+T}
+SIGUSR1 T T{
+.na
+User-defined signal 1.
+.ad
+T}
+SIGUSR2 T T{
+.na
+User-defined signal 2.
+.ad
+T}
+SIGPOLL T T{
+.na
+Pollable event.
+.ad
+T}
+SIGPROF T T{
+.na
+Profiling timer expired.
+.ad
+T}
+SIGSYS A T{
+.na
+Bad system call.
+.ad
+T}
+SIGTRAP A T{
+.na
+Trace/breakpoint trap.
+.ad
+T}
+SIGURG I T{
+.na
+High bandwidth data is available at a socket.
+.ad
+T}
+SIGVTALRM T T{
+.na
+Virtual timer expired.
+.ad
+T}
+SIGXCPU A T{
+.na
+CPU time limit exceeded.
+.ad
+T}
+SIGXFSZ A T{
+.na
+File size limit exceeded.
+.ad
+T}
+.TE
+.LP
+The default actions are as follows:
+.TP 7
+T
+Abnormal termination of the process. The process is terminated with
+all the consequences of \fI_exit\fP() except that the status made
+available to \fIwait\fP() and \fIwaitpid\fP() indicates abnormal
+termination by the specified signal.
+.TP 7
+A
+Abnormal termination of the process.
+.br
+Additionally, implementation-defined abnormal termination actions,
+such as creation of a \fBcore\fP file, may occur.
+.TP 7
+I
+Ignore the signal.
+.TP 7
+S
+Stop the process.
+.TP 7
+C
+Continue the process, if it is stopped; otherwise, ignore the signal.
+.sp
+.sp
+.LP
+The
+header shall provide a declaration of \fBstruct sigaction\fP, including
+at least the following members:
+.sp
+.RS
+.nf
+
+\fBvoid (*sa_handler)(int) \fP Pointer to a signal-catching function or one of the macros \fB
+ \fP SIG_IGN or SIG_DFL. \fB
+sigset_t sa_mask \fP Set of signals to be blocked during execution of the signal \fB
+ \fP handling function. \fB
+int sa_flags \fP Special flags. \fB
+void (*sa_sigaction)(int, siginfo_t *, void *)
+ \fP Pointer to a signal-catching function. \fB
+\fP
+.fi
+.RE
+.LP
+The storage occupied by \fIsa_handler\fP and \fIsa_sigaction\fP may
+overlap, and a conforming application shall not use both
+simultaneously.
+.LP
+The following shall be declared as constants:
+.TP 7
+SA_NOCLDSTOP
+Do
+not generate SIGCHLD when children stop
+.br
+or
+stopped children continue.
+.TP 7
+SIG_BLOCK
+The resulting set is the union of the current set and the signal set
+pointed to by the argument \fIset\fP.
+.TP 7
+SIG_UNBLOCK
+The resulting set is the intersection of the current set and the complement
+of the signal set pointed to by the argument
+\fIset\fP.
+.TP 7
+SIG_SETMASK
+The resulting set is the signal set pointed to by the argument \fIset\fP.
+.TP 7
+SA_ONSTACK
+Causes signal delivery to occur on an alternate stack.
+.TP 7
+SA_RESETHAND
+Causes signal dispositions to be set to SIG_DFL on entry to signal
+handlers.
+.TP 7
+SA_RESTART
+Causes certain functions to become restartable.
+.TP 7
+SA_SIGINFO
+Causes extra information to be passed to signal handlers at the time
+of receipt of a signal.
+.TP 7
+SA_NOCLDWAIT
+Causes implementations not to create zombie processes on child death.
+.TP 7
+SA_NODEFER
+Causes signal not to be automatically blocked on entry to signal handler.
+.TP 7
+SS_ONSTACK
+Process is executing on an alternate signal stack.
+.TP 7
+SS_DISABLE
+Alternate signal stack is disabled.
+.TP 7
+MINSIGSTKSZ
+Minimum stack size for a signal handler.
+.TP 7
+SIGSTKSZ
+Default size in bytes for the alternate signal stack.
+.sp
+.LP
+The \fBucontext_t\fP structure shall be defined through \fBtypedef\fP
+as described in \fI<ucontext.h>\fP.
+.LP
+The \fBmcontext_t\fP type shall be defined through \fBtypedef\fP as
+described in \fI<ucontext.h>\fP.
+.LP
+The \fI<signal.h>\fP header shall define the \fBstack_t\fP type as
+a structure that includes at least the following
+members:
+.sp
+.RS
+.nf
+
+\fBvoid *ss_sp \fP Stack base or pointer. \fB
+size_t ss_size \fP Stack size. \fB
+int ss_flags \fP Flags. \fB
+\fP
+.fi
+.RE
+.LP
+The \fI<signal.h>\fP header shall define the \fBsigstack\fP structure
+that includes at least the following members:
+.sp
+.RS
+.nf
+
+\fBint ss_onstack \fP Non-zero when signal stack is in use. \fB
+void *ss_sp \fP Signal stack pointer. \fB
+\fP
+.fi
+.RE
+.LP
+The
+\fI<signal.h>\fP header shall define the \fBsiginfo_t\fP type as a
+structure that includes at least the following members:
+.sp
+.RS
+.nf
+
+\fB
+int si_signo \fP Signal number. \fB
+
+
+int si_errno \fP If non-zero, an \fIerrno\fP value associated with \fB
+ \fP this signal, as defined in \fB<errno.h>.\fP \fB
+
+
+int si_code \fP Signal code. \fB
+
+
+pid_t si_pid \fP Sending process ID. \fB
+uid_t si_uid \fP Real user ID of sending process. \fB
+void *si_addr \fP Address of faulting instruction. \fB
+int si_status\fP Exit value or signal. \fB
+long si_band \fP Band event for SIGPOLL. \fB
+
+
+union sigval si_value \fP Signal value. \fB
+
+\fP
+.fi
+.RE
+.LP
+The macros specified in the \fBCode\fP column of the following table
+are defined for use as values of \fIsi_code\fP that are
+\ signal-specific or non-signal-specific reasons why the signal
+was generated.
+.TS C
+center; l l lw(40).
+\fBSignal\fP \fBCode\fP T{
+.na
+\fBReason\fP
+.ad
+T}
+SIGILL ILL_ILLOPC T{
+.na
+Illegal opcode.
+.ad
+T}
+\ ILL_ILLOPN T{
+.na
+Illegal operand.
+.ad
+T}
+\ ILL_ILLADR T{
+.na
+Illegal addressing mode.
+.ad
+T}
+\ ILL_ILLTRP T{
+.na
+Illegal trap.
+.ad
+T}
+\ ILL_PRVOPC T{
+.na
+Privileged opcode.
+.ad
+T}
+\ ILL_PRVREG T{
+.na
+Privileged register.
+.ad
+T}
+\ ILL_COPROC T{
+.na
+Coprocessor error.
+.ad
+T}
+\ ILL_BADSTK T{
+.na
+Internal stack error.
+.ad
+T}
+SIGFPE FPE_INTDIV T{
+.na
+Integer divide by zero.
+.ad
+T}
+\ FPE_INTOVF T{
+.na
+Integer overflow.
+.ad
+T}
+\ FPE_FLTDIV T{
+.na
+Floating-point divide by zero.
+.ad
+T}
+\ FPE_FLTOVF T{
+.na
+Floating-point overflow.
+.ad
+T}
+\ FPE_FLTUND T{
+.na
+Floating-point underflow.
+.ad
+T}
+\ FPE_FLTRES T{
+.na
+Floating-point inexact result.
+.ad
+T}
+\ FPE_FLTINV T{
+.na
+Invalid floating-point operation.
+.ad
+T}
+\ FPE_FLTSUB T{
+.na
+Subscript out of range.
+.ad
+T}
+SIGSEGV SEGV_MAPERR T{
+.na
+Address not mapped to object.
+.ad
+T}
+\ SEGV_ACCERR T{
+.na
+Invalid permissions for mapped object.
+.ad
+T}
+SIGBUS BUS_ADRALN T{
+.na
+Invalid address alignment.
+.ad
+T}
+\ BUS_ADRERR T{
+.na
+Nonexistent physical address.
+.ad
+T}
+\ BUS_OBJERR T{
+.na
+Object-specific hardware error.
+.ad
+T}
+SIGTRAP TRAP_BRKPT T{
+.na
+Process breakpoint.
+.ad
+T}
+\ TRAP_TRACE T{
+.na
+Process trace trap.
+.ad
+T}
+SIGCHLD CLD_EXITED T{
+.na
+Child has exited.
+.ad
+T}
+\ CLD_KILLED T{
+.na
+Child has terminated abnormally and did not create a \fBcore\fP file.
+.ad
+T}
+\ CLD_DUMPED T{
+.na
+Child has terminated abnormally and created a \fBcore\fP file.
+.ad
+T}
+\ CLD_TRAPPED T{
+.na
+Traced child has trapped.
+.ad
+T}
+\ CLD_STOPPED T{
+.na
+Child has stopped.
+.ad
+T}
+\ CLD_CONTINUED T{
+.na
+Stopped child has continued.
+.ad
+T}
+SIGPOLL POLL_IN T{
+.na
+Data input available.
+.ad
+T}
+\ POLL_OUT T{
+.na
+Output buffers available.
+.ad
+T}
+\ POLL_MSG T{
+.na
+Input message available.
+.ad
+T}
+\ POLL_ERR T{
+.na
+I/O error.
+.ad
+T}
+\ POLL_PRI T{
+.na
+High priority input available.
+.ad
+T}
+\ POLL_HUP T{
+.na
+Device disconnected.
+.ad
+T}
+Any SI_USER T{
+.na
+Signal sent by \fIkill\fP().
+.ad
+T}
+\ SI_QUEUE T{
+.na
+Signal sent by the \fIsigqueue\fP().
+.ad
+T}
+\ SI_TIMER T{
+.na
+Signal generated by expiration of a timer set by \fItimer_settime\fP().
+.ad
+T}
+\ SI_ASYNCIO T{
+.na
+Signal generated by completion of an asynchronous I/O request.
+.ad
+T}
+\ SI_MESGQ T{
+.na
+Signal generated by arrival of a message on an empty message queue.
+.ad
+T}
+.TE
+.LP
+Implementations may support additional \fIsi_code\fP values not included
+in this list, may generate values included in this list
+under circumstances other than those described in this list, and may
+contain extensions or limitations that prevent some values
+from being generated. Implementations do not generate a different
+value from the ones described in this list for circumstances
+described in this list.
+.LP
+In addition, the following signal-specific information shall be available:
+.TS C
+center; l1 l1 l.
+\fBSignal\fP \fBMember\fP \fBValue\fP
+SIGILL \fBvoid * \fIsi_addr\fP\fP Address of faulting instruction.
+SIGFPE \fB\ \fP \
+SIGSEGV \fBvoid * \fIsi_addr\fP\fP Address of faulting memory reference.
+SIGBUS \fB\ \fP \
+SIGCHLD \fBpid_t \fIsi_pid\fP\fP Child process ID.
+\ \fBint \fIsi_status\fP\fP Exit value or signal.
+\ \fBuid_t \fIsi_uid\fP\fP Real user ID of the process that sent the signal.
+SIGPOLL \fBlong \fIsi_band\fP\fP Band event for POLL_IN, POLL_OUT, or POLL_MSG.
+.TE
+.LP
+For some implementations, the value of \fIsi_addr\fP may be inaccurate.
+.LP
+The following shall be declared as functions and may also be defined
+as macros:
+.sp
+.RS
+.nf
+
+\fB
+void (*bsd_signal(int, void (*)(int)))(int);
+
+
+int kill(pid_t, int);
+
+
+int killpg(pid_t, int);
+
+
+int pthread_kill(pthread_t, int);
+int pthread_sigmask(int, const sigset_t *, sigset_t *);
+
+int raise(int);
+
+int sigaction(int, const struct sigaction *restrict,
+ struct sigaction *restrict);
+int sigaddset(sigset_t *, int);
+
+
+int sigaltstack(const stack_t *restrict, stack_t *restrict);
+
+
+int sigdelset(sigset_t *, int);
+int sigemptyset(sigset_t *);
+int sigfillset(sigset_t *);
+
+
+int sighold(int);
+int sigignore(int);
+int siginterrupt(int, int);
+
+
+int sigismember(const sigset_t *, int);
+
+void (*signal(int, void (*)(int)))(int);
+
+int sigpause(int);
+
+
+int sigpending(sigset_t *);
+int sigprocmask(int, const sigset_t *restrict, sigset_t *restrict);
+
+
+int sigqueue(pid_t, int, const union sigval);
+
+
+int sigrelse(int);
+void (*sigset(int, void (*)(int)))(int);
+
+
+int sigsuspend(const sigset_t *);
+
+
+int sigtimedwait(const sigset_t *restrict, siginfo_t *restrict,
+ const struct timespec *restrict);
+
+
+int sigwait(const sigset_t *restrict, int *restrict);
+
+
+int sigwaitinfo(const sigset_t *restrict, siginfo_t *restrict);
+
+\fP
+.fi
+.RE
+.LP
+Inclusion of the \fI<signal.h>\fP header may make visible all symbols
+from the \fI<time.h>\fP header.
+.LP
+\fIThe following sections are informative.\fP
+.SH APPLICATION USAGE
+.LP
+None.
+.SH RATIONALE
+.LP
+None.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fI<errno.h>\fP , \fI<stropts.h>\fP , \fI<sys/types.h>\fP , \fI<time.h>\fP
+, \fI<ucontext.h>\fP , the System Interfaces volume of IEEE\ Std\ 1003.1-2001,
+\fIalarm\fP(), \fIbsd_signal\fP(), \fIioctl\fP(), \fIkill\fP(), \fIkillpg\fP(),
+\fIraise\fP(), \fIsigaction\fP(), \fIsigaddset\fP(), \fIsigaltstack\fP(),
+\fIsigdelset\fP(), \fIsigemptyset\fP(), \fIsigfillset\fP(), \fIsiginterrupt\fP(),
+\fIsigismember\fP(), \fIsignal\fP(), \fIsigpending\fP(), \fIsigprocmask\fP(),
+\fIsigqueue\fP(), \fIsigsuspend\fP(), \fIsigwaitinfo\fP(), \fIwait\fP(),
+\fIwaitid\fP()
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group. In the
+event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .