ASSERT(3) | Library Functions Manual | ASSERT(3)

# NAME

`assert` — expression verification macro

# SYNOPSIS

`#include <assert.h>`

`assert`(expression);

# DESCRIPTION

The `assert`() macro tests the given expression and if it is false, the calling process is terminated. A diagnostic message, consisting of the text of the expression, the name of the source file, the line number and the enclosing function, is written to stderr and the abort(3) function is called, effectively terminating the program.

If expression is true, the `assert`() macro does nothing.

The `assert`() macro may be removed at compile time with the cc(1) option `-DNDEBUG`.

# DIAGNOSTICS

The following diagnostic message is written to stderr if expression is false:

    "assertion \"%s\" failed: file \"%s\", line %d, function \"%s\"\n", \
    		    "expression", __FILE__, __LINE__, __func__);

# SEE ALSO

cc(1), _DIAGASSERT(3), abort(3)

# STANDARDS

The `assert`() macro conforms to ISO/IEC 9899:1999 (“ISO C99”).

# HISTORY

A `assert` macro appeared in Version 7 AT&T UNIX.

Information on the name of the enclosing function appeared in ISO/IEC 9899:1999 (“ISO C99”).

June 1, 2016 | NetBSD 11.0