Linux

CentOS 5.3

assert(3)


ASSERT

NOM

assert − Terminer le programme en cas d’échec d’un test.

SYNOPSIS

#include <assert.h>

void assert (int expression);

DESCRIPTION

Si la macro NDEBUG était définie lors de la dernière inclusion de <assert.h>, la macro assert() ne génère aucun code, et ne fait rien. Sinon, la macro assert() affiche un message d’erreur sur la sortie d’erreur, et termine l’exécution du programme en cours en appelant abort() si l’expression est fausse (égale à zéro).

Le but de cette macro est d’aider le programmeur à trouver des bogues dans son application. Le message « assertion failed in file foo.c, function do_bar(), line 1287 » n’est d’aucune aide pour l’utilisateur final.

VALEUR RENVOYÃE

Aucune valeur n’est renvoyée.

CONFORMITÃ

POSIX.1-2001, C89, C99. Dans C89 expression devait être de type int et le comportement était indéfini si ce n’était pas le cas, mais depuis C99, elle peut être de n’importe quel type scalaire.

BOGUES

assert() étant implementée comme une macro, si l’expression testée à des effets de bord, le comportement du programme diffèrera suivant l’existence de NDEBUG. Ceci peut induire des Heisenbogues (conformes à la théorie de Heisenberg ;-), qui disparaissent quand le débogage est utilisé.

VOIR AUSSI

abort(3), assert_perror(3), exit(3)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 octobre 1996 et révisée le 14 août 2006.

L’équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 assert ». N’hésitez pas à signaler à l’auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


assert(3)