_DIAGASSERT(3)

πŸ“¦ version 11.0, in nixpkgs unstable

🌸 NAME: _DIAGASSERT(3) β€” expression verification macro (Library Functions Manual) 🌸

okay so bestie, welcome to the _DIAGASSERT(3) page πŸ’–. It's giving library functions manual energy, and the whole thing is about an expression verification macro. No cap.

✨ SYNOPSIS ✨

#include <assert.h>

_DIAGASSERT(expression);

πŸŽ€ DESCRIPTION πŸŽ€

The _DIAGASSERT() macro tests the given expression, and if it's false, one or more of these things may happen:

  • a diagnostic message may be logged to the system logger with syslog(3). This is default behaviour.
  • a diagnostic message may be printed to the stderr stream.
  • the calling process will be terminated by calling abort(3).

This behaviour may be changed by setting the LIBC_DIAGASSERT environment variable (see below) πŸ‘€.

The diagnostic message consists of the text of the expression, the name of the source file, the line number and the enclosing function. It's literally receipts: expression, file, line, function.

If expression is true, the _DIAGASSERT() macro does nothing. chill, no drama.

The _DIAGASSERT() macro is not compiled in by default, and will only be compiled in with the cc(1) option -D_DIAGNOSTIC. periodt.

This macro is used in the various system libraries such as the Standard C Library (libc, -lc) to ensure that various library calls are invoked with valid arguments. iconic valid-arguments energy.

πŸ¦‹ ENVIRONMENT πŸ¦‹

The LIBC_DIAGASSERT environment variable can be used to modify the default behaviour of logging the assertion to the system logger.

LIBC_DIAGASSERT may be set to one or more of the following characters:

  • a β€” calls abort(3) once any assertion messages have been logged and/or printed.
  • A β€” opposite of a.
  • e β€” prints the assertion message to the stderr stream.
  • E β€” opposite of e.
  • l β€” logs the assertion message with syslog(3) to the facility user.debug.
  • L β€” opposite of l.

πŸ”₯ DIAGNOSTICS πŸ”₯

The diagnostic message has the following format:

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

🌈 SEE ALSO 🌈

πŸ‘‘ HISTORY πŸ‘‘

The _DIAGASSERT macro appeared in NetBSD 1.5.

xoxo, Debian πŸ’– β€” this page is dated January 22, 2007 πŸŽ€

πŸ“¦ where this page comes from