EXIT |
Quitter |
---|---|
Langage C++ | cstdlib (stdlib.h) |
Syntaxe
void exit(int etat); |
Paramètres
Nom | Description |
---|---|
etat | Ce paramètre permet d'indiquer le code d'état de sortie |
Description
Cette fonction permet de mettre fin à l'exécution d'un programme avec une valeur de retour.
Remarques
- La fonction exit() provoque l'arrêt immédiat et normal d'un programme.
- La valeur de exit_code est transmise au processus appelant, généralement le système d'exploitation, si l'environnement le prend en charge. Par convention, si la valeur de exit_code est zéro, ou EXIT_SUCCESS, la fin normale du programme est supposée. Une valeur différente de zéro, ou EXIT_FAILURE, est utilisée pour indiquer une erreur définie par la mise en oeuvre du compilateur.
- Définition et utilité : La fonction exit en C++ permet de terminer l'exécution d'un programme de manière immédiate, en renvoyant un état de sortie au système d'exploitation. Elle est définie dans la bibliothèque <cstdlib&ght; et peut être utilisée pour quitter un programme de manière contrôlée, que ce soit à la fin normale ou en cas d'erreur.
- Code d'état de sortie : Le paramètre etat passé à exit permet de transmettre un code de sortie au système d'exploitation. Par convention, un code 0 indique une sortie réussie, tandis qu'un code différent de zéro (généralement 1 ou des codes spécifiques) signale une erreur ou une condition anormale. Ce code peut être récupéré par d'autres programmes ou scripts exécutant le programme C++.
- Exécution des destructeurs et des fonctions de nettoyage : Avant de quitter le programme, exit appelle toutes les fonctions enregistrées via atexit (si elles ont été définies). Cela inclut les destructeurs des objets statiques et les fonctions de nettoyage. Cela permet d'effectuer des tâches de nettoyage, comme la libération de ressources ou l'enregistrement d'informations avant que le programme ne se termine.
- Effet sur les flux de sortie : Avant de quitter le programme, la fonction exit ferme tous les flux de sortie (comme std::cout ou std::cerr) de manière appropriée, en vidant les tampons. Cela garantit que les sorties en attente sont correctement écrites avant que le programme ne se termine, ce qui est particulièrement important lorsqu'il s'agit de la gestion des erreurs ou des journaux d'exécution.
- Utilisation de exit dans les programmes : exit peut être utilisé dans n'importe quelle fonction du programme pour quitter de manière immédiate. Toutefois, son utilisation est souvent recommandée dans des cas particuliers, comme dans des situations d'erreur ou lorsque le programme doit se terminer avant son exécution normale, par exemple lors d'une vérification de condition d'erreur critique en début de programme.
- Différences avec return : Une différence importante entre exit et return est que exit termine immédiatement le programme entier, tandis que return quitte uniquement la fonction dans laquelle elle est appelée, et non le programme dans son ensemble. Utiliser exit à la place de return peut être nécessaire dans certaines situations où il est impératif de quitter le programme dès qu'une erreur est détectée.
- Problèmes de portabilité et bonnes pratiques : Bien que exit soit largement portable entre les systèmes, il est important de noter que son comportement peut légèrement varier d'un environnement à l'autre. Par exemple, dans des environnements multi-processus léger, exit termine tous les processus légers sans exécuter les gestionnaires de nettoyage associés à ces processus légers. Ainsi, il est souvent préférable d'utiliser exit dans des situations contrôlées et de bien comprendre son impact sur les ressources et le système dans lequel le programme s'exécute.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :

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