NOM

assert - Terminer le programme en cas d'échec d'un test

BIBLIOTHÈQUE

Bibliothèque C standard ( libc, -lc)

SYNOPSIS

#include <assert.h>
void assert(scalar expression);

DESCRIPTION

Cette macro peut assister les programmeurs dans leur recherche de bogues ou gérer des cas exceptionnels avec un plantage qui produira une information de débogage limitée.
Si expression est fausse (c'est-à-dire, comparaison de son égalité à zéro) assert() affiche un message d'erreur sur la sortie d’erreur et termine le programme par un appel à abort(3). Le message d'erreur inclut le nom du fichier et de la fonction contenant l'appel à assert(), le numéro de ligne de cet appel, ainsi que le texte de l'argument ; quelque chose comme :

prog: un_fichier.c:16: une_fonction: L'assertion `val == 0' a échouée.

Si la macro NDEBUG est définie au moment de la dernière inclusion de <assert.h>, la macro assert() ne génère aucun code et ne fait donc rien. Il n'est pas recommandé de définir NDEBUG si assert() est utilisé pour détecter des conditions d'erreur puisque le logiciel peut se comporter de façon non déterministe.

VALEUR RENVOYÉE

Aucune valeur n'est renvoyée.

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface Attribut Valeur
assert() Sécurité des threads MT-Safe
 

STANDARDS

POSIX.1-2001, POSIX.1-2008, C99.

BOGUES

assert() étant implémentée comme une macro, si l'expression testée a des effets de bord, le comportement du programme différera suivant l'existence de NDEBUG. Cela peut induire des « Heisenbugs » (N.d.T : bogue qui disparaît ou se modifie quand on essaye de le localiser) qui disparaissent lors du débogage.

VOIR AUSSI

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

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <[email protected]>, Thierry Vignaud <[email protected]>, François Micaux, Alain Portal <[email protected]>, Jean-Philippe Guérard <[email protected]>, Jean-Luc Coulon (f5ibh) <[email protected]>, Julien Cristau <[email protected]>, Thomas Huriaux <[email protected]>, Nicolas François <[email protected]>, Florentin Duneau <[email protected]>, Simon Paillard <[email protected]>, Denis Barbier <[email protected]>, David Prévot <[email protected]> et Grégoire Scano <[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à [email protected]

Recommended readings

Pages related to assert you should read also: