home   contributing   bugs   download   online pages  

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | CONFORMING TO | BUGS | SEE ALSO | COLOPHON


ASSERT_PERROR(3)              Linux Programmer's Manual              ASSERT_PERROR(3)

NAME         top

       assert_perror - test errnum and abort

SYNOPSIS         top

       #define _GNU_SOURCE
       #include <assert.h>

       void assert_perror(int errnum);

DESCRIPTION         top

       If the macro NDEBUG was defined at the moment <assert.h> was last included,
       the macro assert_perror() generates no code, and hence does nothing at all.
       Otherwise, the macro assert_perror() prints an error message to standard error
       and terminates the program by calling abort(3) if errnum is non-zero.  The
       message contains the filename, function name and line number of the macro
       call, and the output of strerror(errnum).

RETURN VALUE         top

       No value is returned.

CONFORMING TO         top

       This is a GNU extension.

BUGS         top

       The purpose of the assert macros is to help the programmer find bugs in his
       program, things that cannot happen unless there was a coding mistake.
       However, with system or library calls the situation is rather different, and
       error returns can happen, and will happen, and should be tested for.  Not by
       an assert, where the test goes away when NDEBUG is defined, but by proper
       error handling code.  Never use this macro.

SEE ALSO         top

       abort(3), assert(3), exit(3), strerror(3), feature_test_macros(7)

COLOPHON         top

       This page is part of release 3.23 of the Linux man-pages project.  A
       description of the project, and information about reporting bugs, can be found
       at http://www.kernel.org/doc/man-pages/.

GNU                                   2002-08-25                     ASSERT_PERROR(3)