Dela via


exit, _Exit_exit

Avslutar samtalsprocessen. Funktionen exit avslutar den efter rensningen _exit och _Exit avslutar den omedelbart.

Anmärkning

Använd inte den här metoden för att stänga av en UWP-app (Universal Windows Platform), förutom i test- eller felsökningsscenarier. Programmatiska eller gränssnittsmässiga sätt att stänga en Store-app är inte tillåtna enligt Microsoft Store-principerna. Mer information finns i UWP-appens livscykel. Mer information om UWP-appar finns i Dokumentation om Universell Windows-plattform.

Syntax

void exit(
   int const status
);
void _Exit(
   int const status
);
void _exit(
   int const status
);

Parameterar

status
Avsluta statuskod.

Anmärkningar

Funktionerna exit, _Exit och _exit avslutar anropsprocessen. Funktionen exit anropar destructors för trådlokala objekt och anropar sedan i LIFO-ordning (last-in-first-out) de funktioner som registreras av atexit och _onexitoch sedan rensar alla filbuffertar innan processen avslutas. Funktionerna _Exit och _exit avslutar processen utan att förstöra trådlokala objekt eller bearbetning atexit eller _onexit funktioner, och utan att tömma dataströmbuffertar.

Även om anropen exit, _Exit och _exit inte returnerar något värde, görs värdet i status tillgängligt för värdmiljön eller väntande samtalsprocess, om det finns något, efter att processen har avslutats. Normalt anger status anroparen värdet till 0 för att indikera en normal utgång eller till något annat värde för att indikera ett fel. Värdet status är tillgängligt för batchkommandot ERRORLEVEL för operativsystemet och representeras av en av två konstanter: EXIT_SUCCESS, som representerar värdet 0 eller EXIT_FAILURE, som representerar värdet 1.

Funktionerna exit, _Exit, _exit, quick_exit, _cexitoch _c_exit fungerar enligt följande.

Funktion Description
exit Utför fullständiga procedurer för C-biblioteksavslut, avslutar processen och tillhandahåller den angivna statuskoden till värdmiljön.
_Exit Utför minimala procedurer för C-biblioteksavslut, avslutar processen och tillhandahåller den angivna statuskoden till värdmiljön.
_exit Utför minimala procedurer för C-biblioteksavslut, avslutar processen och tillhandahåller den angivna statuskoden till värdmiljön.
quick_exit Utför snabba avslutningsprocedurer för C-bibliotek, avslutar processen och tillhandahåller den angivna statuskoden till värdmiljön.
_cexit Utför fullständiga procedurer för C-biblioteksavslut och återgår till anroparen. Avslutar inte processen.
_c_exit Utför minimala procedurer för C-biblioteksavslut och återgår till anroparen. Avslutar inte processen.

När du anropar exitfunktionen , _Exit eller _exit anropas inte destrukater för temporära eller automatiska objekt som finns vid tidpunkten för anropet. Ett automatiskt objekt är ett icke-statiskt lokalt objekt som definierats i en funktion. Ett tillfälligt objekt är ett objekt som skapas av kompilatorn, till exempel ett värde som returneras av ett funktionsanrop. Om du vill förstöra ett automatiskt objekt innan du anropar exit, _Exiteller _exit, anropar du uttryckligen destrukttorn för objektet, enligt följande:

void last_fn() {}
    struct SomeClass {} myInstance{};
    // ...
    myInstance.~SomeClass(); // explicit destructor call
    exit(0);
}

Använd inte DLL_PROCESS_ATTACH för att anropa exit från DllMain. Om du vill avsluta DLLMain funktionen går du tillbaka FALSE från DLL_PROCESS_ATTACH.

Som standard är den här funktionens globala tillstånd begränsat till programmet. Information om hur du ändrar det här beteendet finns i Globalt tillstånd i CRT.

Kravspecifikation

Funktion Obligatoriskt huvud
exit, _Exit_exit <process.h> eller <stdlib.h>

Mer kompatibilitetsinformation finns i Kompatibilitet.

Example

// 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 );
}

Se även

Process- och miljökontroll
abort
atexit
_cexit, _c_exit
_exec, _wexec funktioner
_onexit, _onexit_m
quick_exit
_spawn, _wspawn funktioner
system, _wsystem