summaryrefslogtreecommitdiffstats
path: root/man3/assert.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/assert.3')
-rw-r--r--man3/assert.374
1 files changed, 74 insertions, 0 deletions
diff --git a/man3/assert.3 b/man3/assert.3
new file mode 100644
index 000000000..728cc08b7
--- /dev/null
+++ b/man3/assert.3
@@ -0,0 +1,74 @@
+.\" (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
+.\"
+.\" 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.
+.\" License.
+.\" Modified Sat Jul 24 21:42:42 1993 by Rik Faith <faith@cs.unc.edu>
+.\" Modified Tue Oct 22 23:44:11 1996 by Eric S. Raymond <esr@thyrsus.com>
+.TH ASSERT 3 2002-08-25 "C99" "Linux Programmer's Manual"
+.SH NAME
+assert \- abort the program if assertion is false
+.SH SYNOPSIS
+.nf
+.B #include <assert.h>
+.sp
+.BI "void assert(scalar " expression );
+.fi
+.SH DESCRIPTION
+If the macro
+.B NDEBUG
+was defined at the moment
+.B <assert.h>
+was last included, the macro
+.B assert()
+generates no code, and hence does nothing at all.
+Otherwise, the macro
+.B assert()
+prints an error message to standard output and terminates the program
+by calling
+.B abort()
+if
+.I expression
+is false (i.e., compares equal to zero).
+.LP
+The purpose of this macro is to help the programmer find bugs in
+his program. The message "assertion failed in file foo.c, function
+do_bar(), line 1287" is of no help at all to a user.
+.SH "RETURN VALUE"
+No value is returned.
+.SH "CONFORMING TO"
+ISO9899 (ANSI C). In the 1990 standard,
+.I expression
+is required to be of type
+.B int
+and undefined behavior results if it is not, but in the 1999 standard
+it may have any scalar type.
+.\" See Defect Report 107 for more details.
+.SH BUGS
+.B assert()
+is implemented as a macro; if the expression tested has side-effects,
+program behaviour will be different depending on whether
+.B NDEBUG
+is defined. This may create Heisenbugs which go away when debugging
+is turned on.
+.SH "SEE ALSO"
+.BR abort (3),
+.BR assert_perror (3),
+.BR exit (3)