abort(3)

NOM
abort - Terminer de manière anormale un programme

BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)

SYNOPSIS
#include <stdlib.h>

[[noreturn]] void abort(void);

DESCRIPTION
La fonction abort() déverrouille le signal SIGABRT, puis émet celui-ci pour le processus appelant (comme si raise(3) était appelé). Cela se traduit par la terminaison anormale du processus sauf si le signal SIGABRT est intercepté et si son gestionnaire de signal ne rend pas la main (consultez longjmp(3)).

Si le signal SIGABRT est ignoré ou intercepté par un gestionnaire de signaux qui renvoie, abort() terminera quand-même le processus. Il effectue cela en restaurant la disposition par défaut de SIGABRT et en émettant le signal une seconde fois.

Comme dans les autres cas de terminaison anormale, les fonctions enregistrées avec atexit(3) et on_exit(3) ne sont pas appelées.

VALEUR RENVOYÉE
La fonction abort() ne renvoie aucune valeur.

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

NORMES
C11, POSIX.1-2008.

HISTORIQUE
SVr4, POSIX.1-2001, 4.3BSD, C89.

Jusqu'à la glibc 2.26, si la fonction abort() entraîne une terminaison du processus, alors tous les flux sont fermés et déchargés (comme le ferait fclose(3)). Cependant, cela pourrait résulter dans certains cas à des situations de blocage (deadlocks) et à une corruption de données. Par conséquent, à partir de la glibc 2.27, abort() termine le processus sans décharger les flux. POSIX.1 permet les deux comportements et stipule que abort() « peut comporter une tentative d'appel à fclose() sur tous les flux ouverts ».

VOIR AUSSI
gdb(1), sigaction(2), assert(3), exit(3), longjmp(3), raise(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.