Partage via


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 exitappels 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, _cexitet _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, _Exitou _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