Provided by: manpages-fr-dev_4.23.1-1_all bug

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).

       ┌────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │assert()                                                │ Sécurité des threads │ MT-Safe │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       C11, POSIX.1-2008.

HISTORIQUE

       C89, C99, POSIX.1-2001.

       Dans C89, expression doit être de type int et le comportement est indéfini si ce n'est pas
       le cas, mais dans C99, elle peut être de n'importe quel type scalaire.

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  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot  <david@tilapin.org>   et   Grégoire   Scano
       <gregoire.scano@malloc.fr>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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 à ⟨debian-l10n-french@lists.debian.org⟩.