exit, _exit
Kończy proces wywołujący—exit kończy go po oczyszczaniu; _exit kończy go natychmiast.
[!UWAGA]
Nie należy używać tej metody do zamykania aplikacji Windows Store, z wyjątkiem testowania i debugowania scenariuszy.Sposoby Programmatic lub interfejs użytkownika, które zamykają Windows Store aplikację nie są dozwolone zgodnie z pkt 3.6 Wymogów w zakresie certyfikacji aplikacji Windows 8.Aby uzyskać więcej informacji, zobacz Cykl życia aplikacji (aplikacje w Sklepie Windows).
void exit(
int status
);
void _exit(
int status
);
Parametry
- status
Stan wyjścia.
Uwagi
Funkcje exit i _exit kończą proces wywołujący.Wywołania exit—w kolejności ostatni na wejściu, pierwszy na wyjściu (LIFO)—funkcje, które są zarejestrowane przez atexit i _onexit, a następnie opróżnia wszystkie bufory plików, zanim zakończy proces._exit kończy proces bez przetwarzania atexit lub _onexit i bez opróżniania buforów strumieni.Zazwyczaj wartość status jest ustawiana na 0, aby wskazać normalne wyjście lub na inną wartość, aby wskazać błąd.
Chociaż wywołania exit i _exit nie zwracają wartości, mniej znaczący bajt wartości status jest dostępny dla oczekującego procesu wywołującego, jeśli taki istnieje, po zakończeniu procesu wywołującego.Wartość status jest dostępna dla polecenia wsadowego systemu operacyjnego ERRORLEVEL 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.exit, _exit, _cexit i _c_exit mają następujące zachowanie.
Funkcja |
Opis |
---|---|
exit |
Wykonuje kompletne procedury kończenia biblioteki C, kończy proces i kończy pracę z dostarczonym kodem stanu. |
_exit |
Wykonuje szybkie procedury kończenia biblioteki C, kończy proces i kończy pracę z dostarczonym kodem stanu. |
_cexit |
Wykonuje kompletne procedury kończenia biblioteki C i powraca do obiektu wywołującego, ale nie kończy procesu. |
_c_exit |
Wykonuje szybkie procedury kończenia biblioteki C i powraca do obiektu wywołującego, ale nie kończy procesu. |
Wywołując funkcję exit lub _exit, destruktory każdego tymczasowego lub automatycznego obiektu, który istnieje w momencie wywołania, nie są wywoływane.Obiekt automatyczny jest zdefiniowany w funkcji, gdzie obiekt nie jest zadeklarowany jako statyczny.Obiekt tymczasowy jest obiektem utworzonym przez kompilator.Aby zniszczyć obiekt automatyczny przed wywołaniem exit lub _exit, należy jawnie wywołać destruktor obiektu w następujący sposób:
myObject.myClass::~myClass();
Nie należy używać DLL_PROCESS_ATTACH w celu wywołania exit z DllMain.Jeśli chcesz zakończyć funkcję DLLMain, zwróć FALSE z DLL_PROCESS_ATTACH.
Wymagania
Funkcja |
Wymagany nagłówek |
---|---|
exit |
<process.h> lub <stdlib.h> |
_exit |
<process.h> lub <stdlib.h> |
Dodatkowe informacje 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 );
}
Odpowiednik w programie .NET Framework
System::Diagnostics::Process::Kill