1535 lines
43 KiB
HTML
1535 lines
43 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 -->
|
|
<!-- Copyright (c) 2001 The Open Group, All Rights Reserved -->
|
|
<title><signal.h></title>
|
|
</head>
|
|
<body bgcolor="white">
|
|
<script type="text/javascript" language="JavaScript" src="../jscript/codes.js">
|
|
</script>
|
|
|
|
<basefont size="3"> <a name="<signal.h>"></a> <a name="tag_13_43"></a><!-- <signal.h> -->
|
|
<!--header start-->
|
|
<center><font size="2">The Open Group Base Specifications Issue 6<br>
|
|
IEEE Std 1003.1-2001<br>
|
|
Copyright © 2001 The IEEE and The Open Group, All Rights reserved.</font></center>
|
|
|
|
<!--header end-->
|
|
<hr size="2" noshade>
|
|
<h4><a name="tag_13_43_01"></a>NAME</h4>
|
|
|
|
<blockquote>signal.h - signals</blockquote>
|
|
|
|
<h4><a name="tag_13_43_02"></a>SYNOPSIS</h4>
|
|
|
|
<blockquote class="synopsis">
|
|
<p><tt>#include <signal.h></tt></p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_13_43_03"></a>DESCRIPTION</h4>
|
|
|
|
<blockquote>
|
|
<div class="box"><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]"
|
|
border="0"> 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, <a href=
|
|
"../functions/xsh_chap02_02.html">Section 2.2, The Compilation Environment</a>) to enable the visibility of these symbols in this
|
|
header. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></div>
|
|
|
|
<p>The <i><signal.h></i> header shall define the following symbolic constants, each of which expands to a distinct constant
|
|
expression of the type:</p>
|
|
|
|
<pre>
|
|
<tt>void (*)(int)
|
|
</tt>
|
|
</pre>
|
|
|
|
<p>whose value matches no declarable function.</p>
|
|
|
|
<dl compact>
|
|
<dt>SIG_DFL</dt>
|
|
|
|
<dd>Request for default signal handling.</dd>
|
|
|
|
<dt>SIG_ERR</dt>
|
|
|
|
<dd>Return value from <a href="../functions/signal.html"><i>signal</i>()</a> in case of error.</dd>
|
|
|
|
<dt>SIG_HOLD</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Request that signal be held. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
|
|
<dt>SIG_IGN</dt>
|
|
|
|
<dd>Request that signal be ignored.</dd>
|
|
</dl>
|
|
|
|
<p>The following data types shall be defined through <b>typedef</b>:</p>
|
|
|
|
<dl compact>
|
|
<dt><b>sig_atomic_t</b></dt>
|
|
|
|
<dd>Possibly volatile-qualified integer type of an object that can be accessed as an atomic entity, even in the presence of
|
|
asynchronous interrupts.</dd>
|
|
|
|
<dt><b>sigset_t</b></dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Integer or structure type of an object used to represent sets of signals. <img src="../images/opt-end.gif" alt="[Option End]"
|
|
border="0"></dd>
|
|
|
|
<dt><b>pid_t</b></dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0"> As
|
|
described in <a href="sys/types.h.html"><i><sys/types.h></i></a> . <img src="../images/opt-end.gif" alt="[Option End]"
|
|
border="0"></dd>
|
|
</dl>
|
|
|
|
<p><sup>[<a href="javascript:open_code('RTS')">RTS</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
The <i><signal.h></i> header shall define the <b>sigevent</b> structure, which has at least the following members:</p>
|
|
|
|
<pre>
|
|
<tt>int sigev_notify </tt> Notification type. <tt>
|
|
int sigev_signo </tt> Signal number. <tt>
|
|
union sigval sigev_value </tt> Signal value. <tt>
|
|
void(*)(union sigval) sigev_notify_function </tt> Notification function. <tt>
|
|
(pthread_attr_t *) sigev_notify_attributes</tt> Notification attributes. <tt>
|
|
</tt>
|
|
</pre>
|
|
|
|
<p>The following values of <i>sigev_notify</i> shall be defined:</p>
|
|
|
|
<dl compact>
|
|
<dt>SIGEV_NONE</dt>
|
|
|
|
<dd>No asynchronous notification is delivered when the event of interest occurs.</dd>
|
|
|
|
<dt>SIGEV_SIGNAL</dt>
|
|
|
|
<dd>A queued signal, with an application-defined value, is generated when the event of interest occurs.</dd>
|
|
|
|
<dt>SIGEV_THREAD</dt>
|
|
|
|
<dd>A notification function is called to perform notification.</dd>
|
|
</dl>
|
|
|
|
<p>The <b>sigval</b> union shall be defined as:</p>
|
|
|
|
<pre>
|
|
<tt>int sival_int </tt> Integer signal value. <tt>
|
|
void *sival_ptr </tt> Pointer signal value. <tt>
|
|
</tt>
|
|
</pre>
|
|
|
|
<p>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.</p>
|
|
|
|
<p>The range SIGRTMIN through SIGRTMAX inclusive shall include at least {RTSIG_MAX} signal numbers.</p>
|
|
|
|
<p>It is implementation-defined whether realtime signal behavior is supported for other signals. <img src="../images/opt-end.gif"
|
|
alt="[Option End]" border="0"></p>
|
|
|
|
<p>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 <a href="../functions/kill.html"><i>kill</i>()</a>). Additional implementation-defined signals may occur in the
|
|
system.</p>
|
|
|
|
<p><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0"> The
|
|
ISO C standard only requires the signal names SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, and SIGTERM to be defined. <img src=
|
|
"../images/opt-end.gif" alt="[Option End]" border="0"></p>
|
|
|
|
<p>The following signals shall be supported on all implementations (default actions are explained below the table):</p>
|
|
|
|
<center>
|
|
<table border="1" cellpadding="3" align="center">
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b>Signal</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Default Action</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Description</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGABRT</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">A</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Process abort signal.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGALRM</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Alarm clock.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGBUS</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">A</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Access to an undefined portion of a memory object.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGCHLD</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">I</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Child process terminated, stopped,</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]"
|
|
border="0"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">or continued. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGCONT</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">C</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Continue executing, if stopped.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGFPE</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">A</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Erroneous arithmetic operation.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGHUP</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Hangup.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGILL</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">A</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Illegal instruction.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGINT</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Terminal interrupt signal.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGKILL</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Kill (cannot be caught or ignored).</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGPIPE</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Write on a pipe with no one to read it.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGQUIT</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">A</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Terminal quit signal.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGSEGV</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">A</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Invalid memory reference.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGSTOP</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">S</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Stop executing (cannot be caught or ignored).</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGTERM</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Termination signal.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGTSTP</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">S</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Terminal stop signal.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGTTIN</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">S</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Background process attempting read.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGTTOU</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">S</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Background process attempting write.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGUSR1</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">User-defined signal 1.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGUSR2</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">User-defined signal 2.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]"
|
|
border="0"> SIGPOLL</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Pollable event.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGPROF</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Profiling timer expired.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGSYS</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">A</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Bad system call.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGTRAP</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">A</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Trace/breakpoint trap. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGURG</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">I</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">High bandwidth data is available at a socket.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]"
|
|
border="0"> SIGVTALRM</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Virtual timer expired.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGXCPU</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">A</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">CPU time limit exceeded.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGXFSZ</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">A</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">File size limit exceeded. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
|
|
<p>The default actions are as follows:</p>
|
|
|
|
<dl compact>
|
|
<dt>T</dt>
|
|
|
|
<dd>Abnormal termination of the process. The process is terminated with all the consequences of <a href=
|
|
"../functions/_exit.html"><i>_exit</i>()</a> except that the status made available to <a href=
|
|
"../functions/wait.html"><i>wait</i>()</a> and <a href="../functions/waitpid.html"><i>waitpid</i>()</a> indicates abnormal
|
|
termination by the specified signal.</dd>
|
|
|
|
<dt>A</dt>
|
|
|
|
<dd>Abnormal termination of the process.<br>
|
|
<sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Additionally, implementation-defined abnormal termination actions, such as creation of a <b>core</b> file, may occur. <img src=
|
|
"../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
|
|
<dt>I</dt>
|
|
|
|
<dd>Ignore the signal.</dd>
|
|
|
|
<dt>S</dt>
|
|
|
|
<dd>Stop the process.</dd>
|
|
|
|
<dt>C</dt>
|
|
|
|
<dd>Continue the process, if it is stopped; otherwise, ignore the signal.</dd>
|
|
</dl>
|
|
|
|
<br>
|
|
<p><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0"> The
|
|
header shall provide a declaration of <b>struct sigaction</b>, including at least the following members:</p>
|
|
|
|
<pre>
|
|
<tt>void (*sa_handler)(int) </tt> What to do on receipt of signal. <tt>
|
|
sigset_t sa_mask </tt> Set of signals to be blocked during execution <tt>
|
|
</tt> of the signal handling function. <tt>
|
|
int sa_flags </tt> Special flags. <tt>
|
|
void (*)(int, siginfo_t *, void *) sa_sigaction
|
|
</tt> Pointer to signal handler function or one <tt>
|
|
</tt> of the macros SIG_IGN or SIG_DFL. <tt>
|
|
</tt>
|
|
</pre>
|
|
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
|
|
<p><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
The storage occupied by <i>sa_handler</i> and <i>sa_sigaction</i> may overlap, and a conforming application shall not use both
|
|
simultaneously. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></p>
|
|
|
|
<p>The following shall be declared as constants:</p>
|
|
|
|
<dl compact>
|
|
<dt>SA_NOCLDSTOP</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0"> Do
|
|
not generate SIGCHLD when children stop <img src="../images/opt-end.gif" alt="[Option End]" border="0"><br>
|
|
<sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0"> or
|
|
stopped children continue. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
|
|
<dt>SIG_BLOCK</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
The resulting set is the union of the current set and the signal set pointed to by the argument <i>set</i>. <img src=
|
|
"../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
|
|
<dt>SIG_UNBLOCK</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
The resulting set is the intersection of the current set and the complement of the signal set pointed to by the argument
|
|
<i>set</i>. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
|
|
<dt>SIG_SETMASK</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
The resulting set is the signal set pointed to by the argument <i>set</i>. <img src="../images/opt-end.gif" alt="[Option End]"
|
|
border="0"></dd>
|
|
|
|
<dt>SA_ONSTACK</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Causes signal delivery to occur on an alternate stack. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
|
|
<dt>SA_RESETHAND</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Causes signal dispositions to be set to SIG_DFL on entry to signal handlers. <img src="../images/opt-end.gif" alt="[Option End]"
|
|
border="0"></dd>
|
|
|
|
<dt>SA_RESTART</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Causes certain functions to become restartable. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
|
|
<dt>SA_SIGINFO</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Causes extra information to be passed to signal handlers at the time of receipt of a signal. <img src="../images/opt-end.gif" alt=
|
|
"[Option End]" border="0"></dd>
|
|
|
|
<dt>SA_NOCLDWAIT</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Causes implementations not to create zombie processes on child death. <img src="../images/opt-end.gif" alt="[Option End]" border=
|
|
"0"></dd>
|
|
|
|
<dt>SA_NODEFER</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Causes signal not to be automatically blocked on entry to signal handler. <img src="../images/opt-end.gif" alt="[Option End]"
|
|
border="0"></dd>
|
|
|
|
<dt>SS_ONSTACK</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Process is executing on an alternate signal stack. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
|
|
<dt>SS_DISABLE</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Alternate signal stack is disabled. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
|
|
<dt>MINSIGSTKSZ</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Minimum stack size for a signal handler. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
|
|
<dt>SIGSTKSZ</dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Default size in bytes for the alternate signal stack. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></dd>
|
|
</dl>
|
|
|
|
<p><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
The <b>ucontext_t</b> structure shall be defined through <b>typedef</b> as described in <a href=
|
|
"../basedefs/ucontext.h.html"><i><ucontext.h></i></a>.</p>
|
|
|
|
<p>The <b>mcontext_t</b> type shall be defined through <b>typedef</b> as described in <a href=
|
|
"../basedefs/ucontext.h.html"><i><ucontext.h></i></a>.</p>
|
|
|
|
<p>The <i><signal.h></i> header shall define the <b>stack_t</b> type as a structure that includes at least the following
|
|
members:</p>
|
|
|
|
<pre>
|
|
<tt>void *ss_sp </tt> Stack base or pointer. <tt>
|
|
size_t ss_size </tt> Stack size. <tt>
|
|
int ss_flags </tt> Flags. <tt>
|
|
</tt>
|
|
</pre>
|
|
|
|
<p>The <i><signal.h></i> header shall define the <b>sigstack</b> structure that includes at least the following members:</p>
|
|
|
|
<pre>
|
|
<tt>int ss_onstack </tt> Non-zero when signal stack is in use. <tt>
|
|
void *ss_sp </tt> Signal stack pointer. <tt>
|
|
</tt>
|
|
</pre>
|
|
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
|
|
<p><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0"> The
|
|
<i><signal.h></i> header shall define the <b>siginfo_t</b> type as a structure that includes at least the following members:
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0"></p>
|
|
|
|
<pre>
|
|
<tt><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int si_signo </tt> Signal number. <tt>
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int si_errno </tt> If non-zero, an <i>errno</i> value associated with <tt>
|
|
</tt> this signal, as defined in <b><errno.h>.</b> <tt>
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('CX')">CX</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int si_code </tt> Signal code. <tt>
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
pid_t si_pid </tt> Sending process ID. <tt>
|
|
uid_t si_uid </tt> Real user ID of sending process. <tt>
|
|
void *si_addr </tt> Address of faulting instruction. <tt>
|
|
int si_status</tt> Exit value or signal. <tt>
|
|
long si_band </tt> Band event for SIGPOLL. <tt>
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('RTS')">RTS</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
union sigval si_value </tt> Signal value. <tt>
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
</tt>
|
|
</pre>
|
|
|
|
<p>The macros specified in the <b>Code</b> column of the following table are defined for use as values of <i>si_code</i> that are
|
|
<sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
signal-specific or <img src="../images/opt-end.gif" alt="[Option End]" border="0"> non-signal-specific reasons why the signal
|
|
was generated.</p>
|
|
|
|
<hr>
|
|
<center>
|
|
<table border="1" cellpadding="3" align="center">
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b>Signal</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Code</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Reason</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]"
|
|
border="0"> SIGILL</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">ILL_ILLOPC</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Illegal opcode.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">ILL_ILLOPN</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Illegal operand.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">ILL_ILLADR</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Illegal addressing mode.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">ILL_ILLTRP</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Illegal trap.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">ILL_PRVOPC</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Privileged opcode.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">ILL_PRVREG</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Privileged register.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">ILL_COPROC</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Coprocessor error.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">ILL_BADSTK</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Internal stack error.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGFPE</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">FPE_INTDIV</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Integer divide by zero.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">FPE_INTOVF</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Integer overflow.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">FPE_FLTDIV</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Floating-point divide by zero.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">FPE_FLTOVF</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Floating-point overflow.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">FPE_FLTUND</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Floating-point underflow.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">FPE_FLTRES</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Floating-point inexact result.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">FPE_FLTINV</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Invalid floating-point operation.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">FPE_FLTSUB</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Subscript out of range.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGSEGV</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">SEGV_MAPERR</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Address not mapped to object.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">SEGV_ACCERR</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Invalid permissions for mapped object.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGBUS</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">BUS_ADRALN</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Invalid address alignment.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">BUS_ADRERR</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Nonexistent physical address.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">BUS_OBJERR</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Object-specific hardware error.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGTRAP</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">TRAP_BRKPT</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Process breakpoint.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">TRAP_TRACE</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Process trace trap.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGCHLD</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">CLD_EXITED</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Child has exited.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">CLD_KILLED</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Child has terminated abnormally and did not create a <b>core</b> file.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">CLD_DUMPED</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Child has terminated abnormally and created a <b>core</b> file.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">CLD_TRAPPED</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Traced child has trapped.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">CLD_STOPPED</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Child has stopped.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">CLD_CONTINUED</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Stopped child has continued.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGPOLL</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">POLL_IN</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Data input available.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">POLL_OUT</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Output buffers available.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">POLL_MSG</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Input message available.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">POLL_ERR</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">I/O error.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">POLL_PRI</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">High priority input available.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">POLL_HUP</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Device disconnected. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]"
|
|
border="0"> Any</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">SI_USER</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Signal sent by <i>kill</i>().</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">SI_QUEUE</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Signal sent by the <i>sigqueue</i>().</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">SI_TIMER</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Signal generated by expiration of a timer set by <i>timer_settime</i>().</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">SI_ASYNCIO</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Signal generated by completion of an asynchronous I/O</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">request.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">SI_MESGQ</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Signal generated by arrival of a message on an empty message</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">queue. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
|
|
<p><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Implementations may support additional <i>si_code</i> 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.</p>
|
|
|
|
<p>In addition, the following signal-specific information shall be available:</p>
|
|
|
|
<center>
|
|
<table border="1" cellpadding="3" align="center">
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b>Signal</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Member</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Value</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGILL</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><b>void * <i>si_addr</i></b></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Address of faulting instruction.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGFPE</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><b> </b></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGSEGV</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><b>void * <i>si_addr</i></b></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Address of faulting memory reference.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGBUS</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><b> </b></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGCHLD</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><b>pid_t <i>si_pid</i></b></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Child process ID.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><b>int <i>si_status</i></b></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Exit value or signal.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"> </p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><b>uid_t <i>si_uid</i></b></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Real user ID of the process that sent the signal.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent">SIGPOLL</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><b>long <i>si_band</i></b></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Band event for POLL_IN, POLL_OUT, or POLL_MSG.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
|
|
<p>For some implementations, the value of <i>si_addr</i> may be inaccurate. <img src="../images/opt-end.gif" alt="[Option End]"
|
|
border="0"></p>
|
|
|
|
<p>The following shall be declared as functions and may also be defined as macros:</p>
|
|
|
|
<pre>
|
|
<tt><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
void (*bsd_signal(int, void (*)(int)))(int);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('CX')">CX</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int kill(pid_t, int);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int killpg(pid_t, int);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('THR')">THR</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int pthread_kill(pthread_t, int);
|
|
int pthread_sigmask(int, const sigset_t *, sigset_t *);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
int raise(int);
|
|
<sup>[<a href="javascript:open_code('CX')">CX</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigaction(int, const struct sigaction *restrict,
|
|
struct sigaction *restrict);
|
|
int sigaddset(sigset_t *, int);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigaltstack(const stack_t *restrict, stack_t *restrict);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('CX')">CX</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigdelset(sigset_t *, int);
|
|
int sigemptyset(sigset_t *);
|
|
int sigfillset(sigset_t *);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sighold(int);
|
|
int sigignore(int);
|
|
int siginterrupt(int, int);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('CX')">CX</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigismember(const sigset_t *, int);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
void (*signal(int, void (*)(int)))(int);
|
|
<sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigpause(int);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('CX')">CX</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigpending(sigset_t *);
|
|
int sigprocmask(int, const sigset_t *restrict, sigset_t *restrict);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('RTS')">RTS</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigqueue(pid_t, int, const union sigval);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigrelse(int);
|
|
void (*sigset(int, void (*)(int)))(int);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('CX')">CX</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigsuspend(const sigset_t *);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('RTS')">RTS</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigtimedwait(const sigset_t *restrict, siginfo_t *restrict,
|
|
const struct timespec *restrict);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('CX')">CX</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigwait(const sigset_t *restrict, int *restrict);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
<sup>[<a href="javascript:open_code('RTS')">RTS</a>]</sup><img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
int sigwaitinfo(const sigset_t *restrict, siginfo_t *restrict);
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0">
|
|
</tt>
|
|
</pre>
|
|
|
|
<p><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Inclusion of the <i><signal.h></i> header may make visible all symbols from the <a href=
|
|
"../basedefs/time.h.html"><i><time.h></i></a> header. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></p>
|
|
</blockquote>
|
|
|
|
<hr>
|
|
<div class="box"><em>The following sections are informative.</em></div>
|
|
|
|
<h4><a name="tag_13_43_04"></a>APPLICATION USAGE</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_13_43_05"></a>RATIONALE</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_13_43_06"></a>FUTURE DIRECTIONS</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_13_43_07"></a>SEE ALSO</h4>
|
|
|
|
<blockquote>
|
|
<p><a href="errno.h.html"><i><errno.h></i></a> , <a href="stropts.h.html"><i><stropts.h></i></a> , <a href=
|
|
"sys/types.h.html"><i><sys/types.h></i></a> , <a href="time.h.html"><i><time.h></i></a> , <a href=
|
|
"ucontext.h.html"><i><ucontext.h></i></a> , the System Interfaces volume of IEEE Std 1003.1-2001, <a href=
|
|
"../functions/alarm.html"><i>alarm</i>()</a>, <a href="../functions/bsd_signal.html"><i>bsd_signal</i>()</a>, <a href=
|
|
"../functions/ioctl.html"><i>ioctl</i>()</a>, <a href="../functions/kill.html"><i>kill</i>()</a>, <a href=
|
|
"../functions/killpg.html"><i>killpg</i>()</a>, <a href="../functions/raise.html"><i>raise</i>()</a>, <a href=
|
|
"../functions/sigaction.html"><i>sigaction</i>()</a>, <a href="../functions/sigaddset.html"><i>sigaddset</i>()</a>, <a href=
|
|
"../functions/sigaltstack.html"><i>sigaltstack</i>()</a>, <a href="../functions/sigdelset.html"><i>sigdelset</i>()</a>, <a href=
|
|
"../functions/sigemptyset.html"><i>sigemptyset</i>()</a>, <a href="../functions/sigfillset.html"><i>sigfillset</i>()</a>, <a href=
|
|
"../functions/siginterrupt.html"><i>siginterrupt</i>()</a>, <a href="../functions/sigismember.html"><i>sigismember</i>()</a>, <a
|
|
href="../functions/signal.html"><i>signal</i>()</a>, <a href="../functions/sigpending.html"><i>sigpending</i>()</a>, <a href=
|
|
"../functions/sigprocmask.html"><i>sigprocmask</i>()</a>, <a href="../functions/sigqueue.html"><i>sigqueue</i>()</a>, <a href=
|
|
"../functions/sigsuspend.html"><i>sigsuspend</i>()</a>, <a href="../functions/sigwaitinfo.html"><i>sigwaitinfo</i>()</a>, <a href=
|
|
"../functions/wait.html"><i>wait</i>()</a>, <a href="../functions/waitid.html"><i>waitid</i>()</a></p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_13_43_08"></a>CHANGE HISTORY</h4>
|
|
|
|
<blockquote>
|
|
<p>First released in Issue 1.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_13_43_09"></a>Issue 5</h4>
|
|
|
|
<blockquote>
|
|
<p>The DESCRIPTION is updated for alignment with the POSIX Realtime Extension and the POSIX Threads Extension.</p>
|
|
|
|
<p>The default action for SIGURG is changed from i to iii. The function prototype for <i>sigmask</i>() is removed.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_13_43_10"></a>Issue 6</h4>
|
|
|
|
<blockquote>
|
|
<p>The Open Group Corrigendum U035/2 is applied. In the DESCRIPTION, the wording for abnormal termination is clarified.</p>
|
|
|
|
<p>The Open Group Corrigendum U028/8 is applied, correcting the prototype for the <a href=
|
|
"../functions/sigset.html"><i>sigset</i>()</a> function.</p>
|
|
|
|
<p>The Open Group Corrigendum U026/3 is applied, correcting the type of the <i>sigev_notify_function</i> function member of the
|
|
<b>sigevent</b> structure.</p>
|
|
|
|
<p>The following new requirements on POSIX implementations derive from alignment with the Single UNIX Specification:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The SIGCHLD, SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN, and SIGTTOU signals are now mandated. This is also a FIPS requirement.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The <b>pid_t</b> definition is mandated.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>The RT markings are now changed to RTS to denote that the semantics are part of the Realtime Signals Extension option.</p>
|
|
|
|
<p>The <b>restrict</b> keyword is added to the prototypes for <a href="../functions/sigaction.html"><i>sigaction</i>()</a>, <a
|
|
href="../functions/sigaltstack.html"><i>sigaltstack</i>()</a>, <a href="../functions/sigprocmask.html"><i>sigprocmask</i>()</a>, <a
|
|
href="../functions/sigtimedwait.html"><i>sigtimedwait</i>()</a>, <a href="../functions/sigwait.html"><i>sigwait</i>()</a>, and <a
|
|
href="../functions/sigwaitinfo.html"><i>sigwaitinfo</i>()</a>.</p>
|
|
|
|
<p>IEEE PASC Interpretation 1003.1 #85 is applied, adding the statement that symbols from <a href=
|
|
"../basedefs/time.h.html"><i><time.h></i></a> may be made visible when <i><signal.h></i> is included.</p>
|
|
|
|
<p>Extensions beyond the ISO C standard are marked.</p>
|
|
</blockquote>
|
|
|
|
<div class="box"><em>End of informative text.</em></div>
|
|
|
|
<hr>
|
|
<hr size="2" noshade>
|
|
<center><font size="2"><!--footer start-->
|
|
UNIX ® is a registered Trademark of The Open Group.<br>
|
|
POSIX ® is a registered Trademark of The IEEE.<br>
|
|
[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href=
|
|
"../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>
|
|
]</font></center>
|
|
|
|
<!--footer end-->
|
|
<hr size="2" noshade>
|
|
</body>
|
|
</html>
|
|
|