CINXE.COM

assert

<html> <head> <title>assert</title> <META NAME="KEYWORDS" CONTENT="assert"> </head> <body BGCOLOR="#ffffff" LINK="#0000ff" VLINK="#0000ff" ALINK="#0000ff" TEXT="#000000"> <center> <h1><b>assert</b></h1></center> <PRE> <STRONG><A HREF="/man3/ASSERT">ASSERT(3)</A></STRONG> Linux Programmer's Manual <STRONG><A HREF="/man3/ASSERT">ASSERT(3)</A></STRONG> NAME assert - abort the program if assertion is false SYNOPSIS #include &lt;assert.h&gt; void assert(scalar expression); DESCRIPTION This macro can help programmers find bugs in their programs, or handle exceptional cases via a crash that will produce limited debugging out- put. If expression is false (i.e., compares equal to zero), assert() prints an error message to standard error and terminates the program by call- ing <STRONG><A HREF="/man3/abort">abort(3)</A></STRONG>. The error message includes the name of the file and function containing the assert() call, the source code line number of the call, and the text of the argument; something like: prog: some_file.c:16: some_func: Assertion `val == 0' failed. If the macro NDEBUG is defined at the moment &lt;assert.h&gt; was last in- cluded, the macro assert() generates no code, and hence does nothing at all. It is not recommended to define NDEBUG if using assert() to de- tect error conditions since the software may behave non-deterministi- cally. RETURN VALUE No value is returned. ATTRIBUTES For an explanation of the terms used in this section, see at- <STRONG><A HREF="/man7/tributes">tributes(7)</A></STRONG>. +----------+---------------+---------+ |Interface | Attribute | Value | +----------+---------------+---------+ |assert() | Thread safety | MT-Safe | +----------+---------------+---------+ CONFORMING TO POSIX.1-2001, POSIX.1-2008, C89, C99. In C89, expression is required to be of type int and undefined behavior results if it is not, but in C99 it may have any scalar type. BUGS assert() is implemented as a macro; if the expression tested has side- effects, program behavior will be different depending on whether NDEBUG is defined. This may create Heisenbugs which go away when debugging is turned on. SEE ALSO <STRONG><A HREF="/man3/abort">abort(3)</A></STRONG>, <STRONG><A HREF="/man3/assert_perror">assert_perror(3)</A></STRONG>, <STRONG><A HREF="/man3/exit">exit(3)</A></STRONG> COLOPHON This page is part of release 5.05 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. GNU 2017-09-15 <STRONG><A HREF="/man3/ASSERT">ASSERT(3)</A></STRONG></PRE> <center> <h6>Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2025 <a href="http://www.he.net">Hurricane Electric</a>. All Rights Reserved.</h6></center> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10