1
0
Files
irix-657m-src/eoe/man/man3x/assert.3x
2022-09-29 17:59:04 +03:00

64 lines
1.4 KiB
Plaintext

'\"macro stdmacro
.if n .pH g3x.assert @(#)assert 41.1 of 5/22/91
.\" Copyright 1991 UNIX System Laboratories, Inc.
.\" Copyright 1989, 1990 AT&T
.nr X
.if \nX=0 .ds x} assert 3X "" "\&"
.if \nX=1 .ds x} assert 3X ""
.if \nX=2 .ds x} assert 3X "" "\&"
.if \nX=3 .ds x} assert "" "" "\&"
.TH \*(x}
.SH NAME
\f4assert\f1 \- verify program assertion
.SH SYNOPSIS
\f4#include <assert.h>\f1
.PP
\f4void assert (int expression);\f1
.SH DESCRIPTION
This macro is useful for putting diagnostics into programs.
When it is executed, if
.I expression\^
is false (zero),
\f4assert\fP
prints
.PP
.RS
.ft 5
Assertion failed: \f2expression\fP, file \f2xyz\fP, line \f2nnn\fP
.ft 1
.RE
.PP
on the standard error output and aborts.
In the error message,
.I xyz\^
is the name of the source file and
.I nnn\^
the source line number
of the
\f4assert\fP
statement.
The latter are respectively the values of the preprocessor macros
\f4__FILE__\fP and \f4__LINE__\fP.
.PP
Compiling with the preprocessor option
\f4\-DNDEBUG\f1
[see
\f4cc\fP(1)],
or with the preprocessor control statement
\f4#define NDEBUG\fP
ahead of the
\f4#include <assert.h>\fP statement,
will stop assertions from
being compiled into the program.
.SH "SEE ALSO"
\f4cc\fP(1),
\f4abort\fP(3C)
.SH "NOTES"
Since
\f4assert\fP
is implemented as a macro, the
.I expression\^
may not contain any string literals.
.\" @(#)assert.3x 6.2 of 10/20/83
.Ee