ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/sigismbr.htm

258 lines
6.7 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>sigismember()--Test for Signal in Signal Set</title>
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Begin Header Records ========================================== -->
<!-- UNIX5 SCRIPT J converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- Edited by Kersten Feb 02 -->
<!-- This file has undergone error condition cleanup on 04/30/02 by JET -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!-- Java sync-link -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<h2>sigismember()--Test for Signal in Signal Set</h2>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Syntax<br>
<pre>
#include &lt;signal.h&gt;
int sigismember( const sigset_t <em>*set</em>, int <em>signo</em> );
</pre>
<br>
&nbsp;&nbsp;Service Program Name: QPOSSRV1<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The <strong>sigismember()</strong> function is part of a family of functions
that manipulate signal sets. <strong>Signal sets</strong> are data objects that
let a thread keep track of groups of signals. For example, a thread might
create a signal set to record which signals it is blocking, and another signal
set to record which signals are pending. Signal sets are used to manipulate
groups of signals used by other functions (such as <strong>
sigprocmask()</strong>) or to examine signal sets returned by other functions
(such as <strong>sigpending()</strong>).</p>
<p><strong>sigismember()</strong> tests whether a signal number specified by
<em>signo</em> is a member of a signal set specified by <em>set</em>.</p>
<br>
<!-- Please NOTE: DO NOT DELETE THIS SECTION if this API has no authorities and locks. -->
<!-- Instead, use the commented out coding below to indicate NONE. -->
<h3>Authorities and Locks</h3>
<!-- Use this if there are no authorities and locks. -->
<p>None.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><strong><em>*set</em></strong></dt>
<dd>(Input) A pointer to a signal set.<br>
<br>
</dd>
<dt><strong><em>signo</em></strong></dt>
<dd>(Input) A signal from the list defined in <a href="sigactn.htm#TBLSIGTBL1">
Control Signals Table</a>.</dd>
</dl>
<br>
<h3>Return Value</h3>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The specified signal is in the specified signal
set.</td>
</tr>
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The specified signal is not in the specified
signal set.</td>
</tr>
<tr>
<td align="left" valign="top"><em>-1</em></td>
<td align="left" valign="top">An error occurred. The <em>errno</em> variable is
set to indicate the error.</td>
</tr>
</table>
<br>
<br>
<h3>Error Conditions</h3>
<p>If <strong>sigismember()</strong> is not successful, <em>errno</em> usually
indicates the following error. Under some conditions, <em>errno</em> could
indicate an error other than that listed here.</p>
<dl>
<dt><em>[EINVAL]</em></dt>
<dd>
<p>The value specified for the argument is not correct.</p>
<p>A function was passed incorrect argument values, or an operation was
attempted on an object and the operation specified is not supported for that
type of object.</p>
<p>An argument value is not valid, out of range, or NULL.</p>
<p>The value of <em>signo</em> is not within the range of valid signals or
specifies a signal that is not supported.</p>
</dd>
</dl>
<br>
<h3>Related Information</h3>
<ul>
<li>The &lt;<strong>signal.h</strong>&gt; file (see <a href="unix13.htm">Header
Files for UNIX-Type Functions</a>)<br>
<br>
</li>
<li><a href="sigactn.htm">sigaction()</a>--Examine and Change Signal Action<br>
<br>
</li>
<li><a href="sigaset.htm">sigaddset()</a>--Add Signal to Signal Set<br>
<br>
</li>
<li><a href="sigdset.htm">sigdelset()</a>--Delete Signal from Signal Set<br>
<br>
</li>
<li><a href="sigeset.htm">sigemptyset()</a>--Initialize and Empty Signal
Set<br>
<br>
</li>
<li><a href="sigfset.htm">sigfillset()</a>--Initialize and Fill Signal Set<br>
<br>
</li>
<li><a href="sigpmsk.htm">sigprocmask()</a>--Examine and Change Blocked
Signals<br>
<br>
</li>
<li><a href="sigpend.htm">sigpending()</a>--Examine Pending Signals<br>
<br>
</li>
<li><a href="sigsusp.htm">sigsuspend()</a>--Wait for Signal<br>
<br>
</li>
<li><a href="sigtwait.htm">sigtimedwait()</a>--Synchronously Accept a Signal
for Interval of Time<br>
<br>
</li>
<li><a href="sigwait.htm">sigwait()</a>--Synchronously Accept a Signal<br>
<br>
</li>
<li><a href="sigwaiti.htm">sigwaitinfo()</a>--Synchronously Accept a Signal and
Signal Data</li>
</ul>
<br>
<h3>Example</h3>
<p>See <a href="../apiref/aboutapis.htm#codedisclaimer">Code disclaimer information</a>
for information pertaining to code examples.</p>
<p>The following example uses the <strong>sigismember()</strong> function to
test for the presence of signals in a signal set:</p>
<pre>
#include &lt;stdio.h&gt;
#include &lt;signal.h&gt;
void check( sigset_t set, int signo, char *signame ) {
printf( "%s is ", signame );
if( !sigismember( &amp;set, signo ) )
printf( "not ");
printf( "in the set" );
}
int main( int argc, char *argv[] ) {
sigset_t sigset;
sigemptyset( &amp;sigset );
sigaddset( &amp;sigset, SIGUSR1 );
sigaddset( &amp;sigset, SIGKILL );
sigaddset( &amp;sigset, SIGCHLD );
check( sigset, SIGUSR1, "SIGUSR1" );
check( sigset, SIGUSR2, "SIGUSR2" );
check( sigset, SIGCHLD, "SIGCHLD" );
check( sigset, SIGFPE, "SIGFPE" );
check( sigset, SIGKILL, "SIGKILL" );
return( 0 );
}
</pre>
<br>
<h3>Output:</h3>
<pre>
SIGUSR1 is in the set
SIGUSR2 is not in the set
SIGCHLD is in the set
SIGFPE is not in the set
SIGKILL is in the set
</pre>
<br>
<hr>
API introduced: V3R6
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"unix.htm">UNIX-Type APIs</a> | <a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>