mirror of https://github.com/mkerrisk/man-pages
75 lines
2.5 KiB
Groff
75 lines
2.5 KiB
Groff
.\" Copyright (C) 2002 Andries Brouwer <aeb@cwi.nl>
|
|
.\"
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
.\" preserved on all copies.
|
|
.\"
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
.\" permission notice identical to this one.
|
|
.\"
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
.\" have taken the same level of care in the production of this manual,
|
|
.\" which is licensed free of charge, as they might when working
|
|
.\" professionally.
|
|
.\"
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
.\"
|
|
.\" This replaces an earlier man page written by Walter Harms
|
|
.\" <walter.harms@informatik.uni-oldenburg.de>.
|
|
.\"
|
|
.TH ASSERT_PERROR 3 2002-08-25 "GNU" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
assert_perror \- test errnum and abort
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.B #define _GNU_SOURCE
|
|
.B #include <assert.h>
|
|
.sp
|
|
.BI "void assert_perror(int " errnum );
|
|
.fi
|
|
.SH DESCRIPTION
|
|
If the macro
|
|
.B NDEBUG
|
|
was defined at the moment
|
|
.I <assert.h>
|
|
was last included, the macro
|
|
.BR assert_perror ()
|
|
generates no code, and hence does nothing at all.
|
|
Otherwise, the macro
|
|
.BR assert_perror ()
|
|
prints an error message to standard error and terminates the program
|
|
by calling
|
|
.BR abort (3)
|
|
if
|
|
.I errnum
|
|
is non-zero.
|
|
The message contains the filename, function name and
|
|
line number of the macro call, and the output of
|
|
.IR strerror(errnum) .
|
|
.SH "RETURN VALUE"
|
|
No value is returned.
|
|
.SH "CONFORMING TO"
|
|
This is a GNU extension.
|
|
.SH BUGS
|
|
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
|
|
.B NDEBUG
|
|
is defined,
|
|
but by proper error handling code.
|
|
Never use this macro.
|
|
.SH "SEE ALSO"
|
|
.BR abort (3),
|
|
.BR assert (3),
|
|
.BR exit (3),
|
|
.BR strerror (3),
|
|
.BR feature_test_macros (7)
|