Files
oldlinux-files/Ref-docs/POSIX/susv3/functions/assert.html
2024-02-19 00:21:47 -05:00

134 lines
4.7 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>assert</title>
</head>
<body bgcolor="white">
<script type="text/javascript" language="JavaScript" src="../jscript/codes.js">
</script>
<basefont size="3"> <a name="assert"></a> <a name="tag_03_26"></a><!-- assert -->
<!--header start-->
<center><font size="2">The Open Group Base Specifications Issue 6<br>
IEEE Std 1003.1-2001<br>
Copyright &copy; 2001 The IEEE and The Open Group, All Rights reserved.</font></center>
<!--header end-->
<hr size="2" noshade>
<h4><a name="tag_03_26_01"></a>NAME</h4>
<blockquote>assert - insert program diagnostics</blockquote>
<h4><a name="tag_03_26_02"></a>SYNOPSIS</h4>
<blockquote class="synopsis">
<p><code><tt>#include &lt;<a href="../basedefs/assert.h.html">assert.h</a>&gt;<br>
<br>
void assert(scalar</tt> <i>expression</i><tt>);<br>
</tt></code></p>
</blockquote>
<h4><a name="tag_03_26_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"> The functionality described on this reference page is aligned with the ISO&nbsp;C standard. Any conflict between the
requirements described here and the ISO&nbsp;C standard is unintentional. This volume of IEEE&nbsp;Std&nbsp;1003.1-2001 defers to
the ISO&nbsp;C standard. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></div>
<p>The <i>assert</i>() macro shall insert diagnostics into programs; it shall expand to a <b>void</b> expression. When it is
executed, if <i>expression</i> (which shall have a <b>scalar</b> type) is false (that is, compares equal to 0), <i>assert</i>()
shall write information about the particular call that failed on <i>stderr</i> and shall call <a href=
"../functions/abort.html"><i>abort</i>()</a>.</p>
<p>The information written about the call that failed shall include the text of the argument, the name of the source file, the
source file line number, and the name of the enclosing function; the latter are, respectively, the values of the preprocessing
macros __FILE__ and __LINE__ and of the identifier __func__.</p>
<p>Forcing a definition of the name NDEBUG, either from the compiler command line or with the preprocessor control statement
<b>#define</b> NDEBUG ahead of the <b>#include</b> <a href="../basedefs/assert.h.html"><i>&lt;assert.h&gt;</i></a> statement, shall
stop assertions from being compiled into the program.</p>
</blockquote>
<h4><a name="tag_03_26_04"></a>RETURN VALUE</h4>
<blockquote>
<p>The <i>assert</i>() macro shall not return a value.</p>
</blockquote>
<h4><a name="tag_03_26_05"></a>ERRORS</h4>
<blockquote>
<p>No errors are defined.</p>
</blockquote>
<hr>
<div class="box"><em>The following sections are informative.</em></div>
<h4><a name="tag_03_26_06"></a>EXAMPLES</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_03_26_07"></a>APPLICATION USAGE</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_03_26_08"></a>RATIONALE</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_03_26_09"></a>FUTURE DIRECTIONS</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_03_26_10"></a>SEE ALSO</h4>
<blockquote>
<p><a href="abort.html"><i>abort</i>()</a> , <i>stderr</i>, the Base Definitions volume of IEEE&nbsp;Std&nbsp;1003.1-2001, <a href=
"../basedefs/assert.h.html"><i>&lt;assert.h&gt;</i></a></p>
</blockquote>
<h4><a name="tag_03_26_11"></a>CHANGE HISTORY</h4>
<blockquote>
<p>First released in Issue 1. Derived from Issue 1 of the SVID.</p>
</blockquote>
<h4><a name="tag_03_26_12"></a>Issue 6</h4>
<blockquote>
<p>The prototype for the <i>expression</i> argument to <i>assert</i>() is changed from <b>int</b> to <b>scalar</b> for alignment
with the ISO/IEC&nbsp;9899:1999 standard.</p>
<p>The DESCRIPTION of <i>assert</i>() is updated for alignment with the ISO/IEC&nbsp;9899:1999 standard.</p>
</blockquote>
<div class="box"><em>End of informative text.</em></div>
<hr>
<hr size="2" noshade>
<center><font size="2"><!--footer start-->
UNIX &reg; is a registered Trademark of The Open Group.<br>
POSIX &reg; 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>