assert_perror(3) — Linux manual page

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ATTRIBUTES | STANDARDS | BUGS | SEE ALSO | COLOPHON

assert_perror(3) Library Functions Manual assert_perror(3)

NAME top

 assert_perror - test errnum and abort

LIBRARY top

 Standard C library (libc, -lc)

SYNOPSIS top

 #define _GNU_SOURCE /* See feature_test_macros(7) */
 #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 nonzero. 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.

ATTRIBUTES top

 For an explanation of the terms used in this section, see
 attributes(7).
 ┌──────────────────────────────────────┬───────────────┬─────────┐
 │ Interface Attribute Value │
 ├──────────────────────────────────────┼───────────────┼─────────┤
 │ assert_perror() │ Thread safety │ MT-Safe │
 └──────────────────────────────────────┴───────────────┴─────────┘

STANDARDS top

 GNU.

BUGS top

 The purpose of the assert macros is to help programmers find bugs
 in their programs, 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)

COLOPHON top

 This page is part of the man-pages (Linux kernel and C library
 user-space interface documentation) project. Information about
 the project can be found at 
 ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report
 for this manual page, see
 ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
 This page was obtained from the tarball man-pages-6.10.tar.gz
 fetched from
 ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
 2025年02月02日. If you discover any rendering problems in this HTML
 version of the page, or you believe there is a better or more up-
 to-date source for the page, or you have corrections or
 improvements to the information in this COLOPHON (which is not
 part of the original manual page), send a mail to
 man-pages@man7.org
Linux man-pages 6.10 2024年07月23日 assert_perror(3)

Pages that refer to this page: assert(3)



HTML rendering created 2025年02月02日 by Michael Kerrisk, author of The Linux Programming Interface.

For details of in-depth Linux/UNIX system programming training courses that I teach, look here.

Hosting by jambit GmbH.

Cover of TLPI

Web Analytics Made Easy - StatCounter

AltStyle によって変換されたページ (->オリジナル) /