Udostępnij za pośrednictwem


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 exiti _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 bufory 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 buforów 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, _cexiti _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 exitfunkcji 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 exitmetody , _Exitlub _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