exit
, , _Exit
_exit
Przerywa proces wywoływania. Funkcja exit
kończy ją po oczyszczeniu i _exit
_Exit
natychmiast ją kończy.
Uwaga
Nie należy używać tej metody do zamykania aplikacji platforma uniwersalna systemu Windows (UWP), z wyjątkiem scenariuszy testowania lub debugowania. Programowe lub interfejsu użytkownika sposoby zamykania aplikacji ze Sklepu nie są dozwolone zgodnie z zasadami sklepu Microsoft Store. Aby uzyskać więcej informacji, zobacz Cykl życia aplikacji platformy UNIWERSALNEJ systemu Windows. Aby uzyskać więcej informacji na temat aplikacji platformy UWP, zobacz dokumentację platforma uniwersalna systemu Windows.
Składnia
void exit(
int const status
);
void _Exit(
int const status
);
void _exit(
int const status
);
Parametry
status
Kod stanu zakończenia.
Uwagi
_Exit
Funkcje exit
i _exit
kończą proces wywoływania. Funkcja exit
wywołuje destruktory dla obiektów lokalnych wątków, a następnie wywołuje — w kolejności ostatniego wyjścia (LIFO) — funkcje zarejestrowane przez atexit
i _onexit
, a następnie opróżniają wszystkie plików przed zakończeniem procesu. Funkcje _Exit
i _exit
kończą proces bez niszczenia obiektów lokalnych wątków lub przetwarzania atexit
lub _onexit
funkcji oraz bez opróżniania strumienia.
exit
_Exit
Mimo że wywołania , i _exit
nie zwracają wartości, wartość w status
pliku jest udostępniana środowisku hosta lub oczekuje procesu wywołania, jeśli istnieje, po zakończeniu procesu. Zazwyczaj obiekt wywołujący ustawia status
wartość na 0, aby wskazać normalne wyjście lub inną wartość, aby wskazać błąd. Wartość status
jest dostępna dla polecenia ERRORLEVEL
wsadowego systemu operacyjnego i jest reprezentowana przez jedną z dwóch stałych: EXIT_SUCCESS
, która reprezentuje wartość 0 lub EXIT_FAILURE
, która reprezentuje wartość 1.
Funkcje exit
, , _Exit
, quick_exit
_exit
, _cexit
i _c_exit
zachowują się w następujący sposób.
Function | opis |
---|---|
exit |
Wykonuje pełne procedury kończenia biblioteki języka C, kończy proces i udostępnia podany kod stanu w środowisku hosta. |
_Exit |
Wykonuje minimalne procedury zakończenia biblioteki języka C, kończy proces i udostępnia podany kod stanu w środowisku hosta. |
_exit |
Wykonuje minimalne procedury zakończenia biblioteki języka C, kończy proces i udostępnia podany kod stanu w środowisku hosta. |
quick_exit |
Wykonuje szybkie procedury kończenia biblioteki języka C, kończy proces i udostępnia podany kod stanu w środowisku hosta. |
_cexit |
Wykonuje pełne procedury kończenia biblioteki języka C i powraca do obiektu wywołującego. Nie kończy procesu. |
_c_exit |
Wykonuje minimalne procedury kończenia biblioteki języka C i powraca do obiektu wywołującego. Nie kończy procesu. |
Podczas wywoływania exit
funkcji lub _Exit
_exit
destruktory dla obiektów tymczasowych lub automatycznych, które istnieją w momencie wywołania, nie są wywoływane. Obiekt automatyczny to niestatyczny obiekt lokalny zdefiniowany w funkcji. Obiekt tymczasowy to obiekt utworzony przez kompilator, taki jak wartość zwracana przez wywołanie funkcji. Aby zniszczyć obiekt automatyczny przed wywołaniem exit
metody , _Exit
lub _exit
, jawnie wywołaj destruktor dla obiektu, jak pokazano poniżej:
void last_fn() {}
struct SomeClass {} myInstance{};
// ...
myInstance.~SomeClass(); // explicit destructor call
exit(0);
}
Nie używaj DLL_PROCESS_ATTACH
funkcji do wywoływania exit
z pliku DllMain
. Aby zamknąć DLLMain
funkcję, wróć FALSE
z .DLL_PROCESS_ATTACH
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Function | Wymagany nagłówek |
---|---|
exit , , _Exit _exit |
<process.h> lub <stdlib.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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 );
}
Zobacz też
Kontrola procesu i środowiska
abort
atexit
_cexit
, _c_exit
_exec
, _wexec
funkcje
_onexit
, _onexit_m
quick_exit
_spawn
, _wspawn
funkcje
system
, _wsystem