exit
, , _Exit
_exit
Termine le processus appelant. La fonction exit
le termine après nettoyage ; _exit
et _Exit
le terminent immédiatement.
Remarque
N’utilisez pas cette méthode pour arrêter une application plateforme Windows universelle (UWP), sauf dans les scénarios de test ou de débogage. Les méthodes programmatiques ou d’interface utilisateur pour fermer une application Store ne sont pas autorisées en fonction des stratégies du Microsoft Store. Pour plus d’informations, consultez le cycle de vie des applications UWP. Pour plus d’informations sur les applications UWP, consultez plateforme Windows universelle documentation.
Syntaxe
void exit(
int const status
);
void _Exit(
int const status
);
void _exit(
int const status
);
Paramètres
status
Code d’état de sortie.
Notes
Les fonctions exit
, _Exit
et _exit
terminent le processus appelant. La fonction exit
appelle des destructeurs pour les objets locaux de thread, puis appelle, selon un ordre dernier entré premier sorti (LIFO), les fonctions qui sont inscrites par atexit
et _onexit
, puis vide toutes les mémoires tampons de fichiers avant de terminer le processus. Les fonctions _Exit
et _exit
terminent le processus sans détruire les objets locaux de thread ou sans traiter les fonctions atexit
ou _onexit
, et sans vider les mémoires tampons des flux.
Bien que les exit
appels et _exit
les _Exit
appels ne retournent pas de valeur, la valeur dans status
laquelle elle est mise à la disposition de l’environnement hôte ou du processus d’appel en attente, le cas échéant, après la fermeture du processus. En règle générale, l’appelant définit status
sur 0 pour indiquer une sortie normale, ou sur une autre valeur pour indiquer une erreur. La valeur de status
est disponible pour la commande batch du système d’exploitation ERRORLEVEL
et est représentée par une de ces deux constantes : EXIT_SUCCESS
, qui représente la valeur 0, ou EXIT_FAILURE
, qui représente la valeur 1.
Les fonctions exit
, _Exit
, _exit
, quick_exit
, _cexit
et _c_exit
se comportent comme suit.
Fonction | Description |
---|---|
exit |
Exécute les procédures d’arrêt complètes de la bibliothèque C, termine le processus et indique le code d’état fourni à l’environnement hôte. |
_Exit |
Exécute les procédures d’arrêt minimales de la bibliothèque C, termine le processus et indique le code d’état fourni à l’environnement hôte. |
_exit |
Exécute les procédures d’arrêt minimales de la bibliothèque C, termine le processus et indique le code d’état fourni à l’environnement hôte. |
quick_exit |
Exécute les procédures d’arrêt rapides de la bibliothèque C, termine le processus et indique le code d’état fourni à l’environnement hôte. |
_cexit |
Exécute les procédures d’arrêt complètes de la bibliothèque C et retourne à l’appelant. Ne termine pas le processus. |
_c_exit |
Exécute les procédures d’arrêt minimales de la bibliothèque C et retourne à l’appelant. Ne termine pas le processus. |
Lorsque vous appelez le exit
, _Exit
ou _exit
la fonction, les destructeurs pour les objets temporaires ou automatiques qui existent au moment de l’appel ne sont pas appelés. Un objet automatique est un objet local non statique défini dans une fonction. Un objet temporaire est un objet créé par le compilateur, tel qu’une valeur retournée par un appel de fonction. Pour détruire un objet automatique avant d’appeler exit
, _Exit
ou _exit
, appeler explicitement le destructeur de l’objet, comme illustré ici :
void last_fn() {}
struct SomeClass {} myInstance{};
// ...
myInstance.~SomeClass(); // explicit destructor call
exit(0);
}
N’utilisez DLL_PROCESS_ATTACH
pas d’appel exit
à partir de DllMain
. Pour quitter la DLLMain
fonction, revenez FALSE
de DLL_PROCESS_ATTACH
.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Fonction | En-tête requis |
---|---|
exit , , _Exit _exit |
<process.h> ou <stdlib.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_exit.c
// This program returns an exit code of 1. The
// error code could be tested in a batch file.
#include <stdlib.h>
int main( void )
{
exit( 1 );
}
Voir aussi
Processus et contrôle d’environnement
abort
atexit
_cexit
, _c_exit
_exec
, fonctions _wexec
_onexit
, _onexit_m
quick_exit
_spawn
, fonctions _wspawn
system
, _wsystem