ABORT |
Abordé |
---|---|
Langage C++ | cstdlib (stdlib.h) |
Syntaxe
void abort(void); |
Description
Cette fonction permet d'interrompre l'exécution du programme de façon anormale.
Remarques
- La fonction abort() provoque l'arrêt immédiat et anormal d'un programme. Généralement, aucun fichier n'est vidé. Dans les environnements le prenant en charge, abort() renverra une valeur définie par la mise en oeuvre au processus appelant (généralement le système d'exploitation) indiquant l'échec.
- Cette fonction est à la limite du standard C++, car officiellement, elle ne retourne aucune exception, cependant le comportement peut varier d'une bibliothèque à une autre.
- Définition et Fonctionnement : La fonction abort est une fonction de la bibliothèque standard C, incluse en C++ via <cstdlib>. Elle permet d'arrêter immédiatement l'exécution du programme en cours sans permettre à celui-ci de poursuivre normalement. En général, elle est utilisée pour signaler une situation irrécupérable, comme une erreur fatale.
- Effet sur le retour du programme : En appelant abort, le programme retourne à l'environnement d'exécution (généralement le système d'exploitation) avec un code de sortie non nul (souvent 1 ou une autre valeur de l'implémentation). Cela permet au système d'exploitation ou aux outils de débogage de signaler que le programme s'est terminé de façon anormale.
- Signal de Terminaison : SIGABRT : L'appel à abort envoie un signal SIGABRT au processus. Ce signal peut être capturé par un gestionnaire de signal si un tel gestionnaire est installé. Par défaut, il entraîne la terminaison immédiate du programme, mais les développeurs peuvent choisir de manipuler ce signal pour effectuer des actions de nettoyage avant l'arrêt du programme.
- Utilisation en débogage : abort est couramment utilisé lors du débogage ou dans des situations où une erreur irréversible se produit et où il est nécessaire de forcer la terminaison du programme. Il peut être utilisé pour signaler une incohérence dans les données ou un état impossible à gérer par le programme.
- Comparaison avec exit : Contrairement à exit, permettant au programme de quitter en appelant les fonctions de nettoyage comme les destructeurs et la fermeture des fichiers, abort termine immédiatement l'exécution sans nettoyage. Si un programme doit quitter proprement, il est préférable d'utiliser exit ou de retourner depuis la fonction main.
- Absence de code de nettoyage : L'une des caractéristiques importantes de abort est qu'il ne passe pas par le processus de nettoyage (pas d'appel de destructeurs, pas de fermeture de fichiers,...). Cela signifie qu'il peut laisser des ressources non libérées, contrairement à exit garantissant une fermeture propre des ressources allouées.
- Code de retour et débogage : Lorsqu'un programme utilise abort, il renvoie un code de sortie spécifique pour indiquer qu'une erreur a eu lieu. Cela peut être utile dans les scripts ou les systèmes de surveillance pour détecter les plantages ou erreurs fatales. De plus, de nombreux débogueurs capturent le signal SIGABRT pour fournir des informations détaillées sur l'état du programme au moment de l'appel à abort.
Exemple
Cet exemple permet de terminer le programme de façon anormale s'il n'y a plus d'un paramètre passé au programme :

Voir également
Langage de programmation - C++ - Référence procédures et fonctions - exit
Langage de programmation - C - Référence procédures et fonctions - abort
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 730.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 27.
Dernière mise à jour : Lundi, le 3 août 2015