Man Linux: Main Page and Category List

NAME

       assert - insert program diagnostics

SYNOPSIS

       #include <assert.h>

       void assert(scalar expression);

DESCRIPTION

       The  assert()  macro  shall  insert diagnostics into programs; it shall
       expand to a void expression. When it is executed, if expression  (which
       shall  have  a  scalar  type)  is false (that is, compares equal to 0),
       assert() shall write information about the particular call that  failed
       on stderr and shall call abort().

       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__.

       Forcing  a  definition  of  the  name  NDEBUG, either from the compiler
       command line or with the preprocessor control statement #define  NDEBUG
       ahead  of the #include <assert.h> statement, shall stop assertions from
       being compiled into the program.

RETURN VALUE

       The assert() macro shall not return a value.

ERRORS

       No errors are defined.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       abort() , stderr, the Base Definitions volume of  IEEE Std 1003.1-2001,
       <assert.h>

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 .