ABORT(3)

NOM
abort - Terminer de manière anormale un programme

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 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 retourne, abort() terminera de toute façon le processus. Il effectue cela en restaurant la disposition par défaut de SIGABRT et en émettant le signal une seconde fois.

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

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

CONFORMITÉ
SVr4, POSIX.1-2001, POSIX.1-2008, 4.3BSD, C89, C99.

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

COLOPHON
Cette page fait partie de la publication 5.13 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

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> et David Prévot <david@tilapin.org> 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.