Поделиться через


exit, _exit

Завершает вызывающий процесс —exit завершает его после очистки; _exit завершает его незамедлительно.

Примечание

Не используйте этот метод для завершения приложения Магазин Windows, за исключением сценариев тестирования или отладки.Закрытие приложения Магазин Windows программным способом или с помощью пользовательского интерфейса на допускается в соответствии с разделом 3.6 сертификационных требований к приложениям для Windows 8.Дополнительные сведения см. в разделе Жизненный цикл приложения (приложения Магазина Windows).

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

Параметры

  • status
    Состояние завершения.

Заметки

Функции exit и _exit завершают вызывающий процесс. exit вызывает в порядке очереди (LIFO) функции, зарегистрированные atexit и _onexit, а затем сбрасывает все файловые буферы до завершения процесса. _exit завершает процесс без обработки atexit или _onexit и без сброса буферов потоков. Как правило, status имеет значение 0 для указания нормального завершения или устанавливается в другое значение для указания ошибки.

Хотя вызовы exit и _exit не возвращают значение, младший байт status становится доступным ожидающему вызывающему процессу, если такой существует, после завершения ожидающего процесса. status значение становится доступным для пакетной команды операционной системы ERRORLEVEL и представлено одной из двух констант: EXIT_SUCCESS, которая представляет значение 0, или EXIT_FAILURE, которая представляет значение 1. exit, _exit, _cexit и _c_exit ведут себя следующим образом.

Функция

Описание

exit

Выполняет полные процедуры завершения библиотеки C, завершает процесс и завершается с предоставленным кодом состояния.

_exit

Выполняет быстрые процедуры завершения библиотеки C, завершает процесс и завершается с предоставленным кодом состояния.

_cexit

Выполняет полные процедуры завершения библиотеки C и возвращает управление вызывающему объекту, но не завершает процесс.

_c_exit

Выполняет быстрые процедуры завершения библиотеки C и возвращает управление вызывающему объекту, но не завершает процесс.

При вызове функции exit или _exit, деструкторы для любых существующих во время вызова временных или автоматических объектов не вызываются. Автоматический объект определен в функции, в которой он не объявляется статическим. Временный объект — это объект, созданный компилятором. Чтобы удалить автоматический объект перед вызовом exit или _exit, явным образом вызовите деструктор объекта следующим образом:

myObject.myClass::~myClass();

Не используйте DLL_PROCESS_ATTACH для вызова exit из DllMain. Если требуется завершить функцию DLLMain, верните FALSE из DLL_PROCESS_ATTACH.

Требования

Функция

Обязательный заголовок

exit

<process.h> или <stdlib.h>

_exit

<process.h> или <stdlib.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

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

Эквивалент в .NET Framework

System::Diagnostics::Process::Kill

См. также

Ссылки

Управление процессами и средой

abort

atexit

_cexit, _c_exit

Функции _exec, _wexec

_onexit, _onexit_m

Функции _spawn, _wspawn

system, _wsystem