- Описание функций языка Си
- exit – завершение работы программы
- exit, _Exit, _exit exit, _Exit, _exit
- Синтаксис Syntax
- Параметры Parameters
- Комментарии Remarks
- Требования Requirements
- Завершение программы C++ C++ program termination
- Функция exit exit function
- Функция abort abort function
- Функция atexit atexit function
- return в main return statement in main
- Уничтожение статических объектов Destruction of static objects
- Пример Example
Описание функций языка Си
All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
exit – завершение работы программы
#include
void exit (int code);
int code – определяет статус завершения работы, 0 (EXIT_SUCCESS)– нормальное завершение работы, отличное от нуля значение (EXIT_FAILURE) – завершение работы с индикацией ошибки.
Ничего не возвращает.
Функция exit (), завершает работу программы. Аргумент code указывает статус завершения работы. При завершении работы в штатном порядке рекомендуется указывать значение статуса 0 или EXIT_SUCCESS. В противном случае рекомендуется указывать отличное от нуля значение или EXIT_FAILURE.
При вызове функции exit () в начале вызываются все функции зарегистрированные функцией atexit () в порядке обратном регистрации. Если какие то функции были зарегистрированы несколько раз, то они будут вызваны столько раз, сколько раз были зарегистрированы.
Затем сбрасываются и закрываются все открытые программой потоки данных и удаляются все созданные временные файлы (созданные с помощью функции tmpfile()). Затем завершается работы программы.
В примере, организуется бесконечный цикл, в котором анализируются символы, вводимые в стандартный поток ввода-вывода. Как только программа встречает символ ‘e’, она завершает работу, вызывая функцию exit (). В качестве параметра функции указывается статус EXIT_SUCCESS, так как завершение работы штатное.
exit, _Exit, _exit exit, _Exit, _exit
Завершает вызывающий процесс. Terminates the calling process. Функция Exit завершает ее после очистки; _exit и _Exit завершать его немедленно. The exit function terminates it after cleanup; _exit and _Exit terminate it immediately.
Не используйте этот метод для завершения работы приложения универсальная платформа Windows (UWP), за исключением сценариев тестирования или отладки. Do not use this method to shut down a Universal Windows Platform (UWP) app, except in testing or debugging scenarios. В соответствии с политиками Microsoft Storeне разрешено закрывать приложения Магазина программным способом или с помощью пользовательского интерфейса. Programmatic or UI ways to close a Store app are not permitted according to the Microsoft Store policies. Дополнительные сведения см. в статье жизненный цикл приложения UWP. For more information, see UWP App lifecycle. Дополнительные сведения о приложениях Windows 10 см. в разделе Практические руководства для приложений Windows 10. For more information about Windows 10 apps, see How-to guides for Windows 10 apps.
Синтаксис Syntax
Параметры Parameters
status status
Код состояния завершения. Exit status code.
Комментарии Remarks
Функции Exit, _Exit и _exit завершают вызывающий процесс. The exit, _Exit and _exit functions terminate the calling process. Функция Exit вызывает деструкторы для локальных объектов потока, а затем вызывает (в порядке ЛИФО) — функции, зарегистрированные atexit и _onexit, а затем очищает все буферы файлов до завершения процесса. The exit function calls destructors for thread-local objects, then calls—in last-in-first-out (LIFO) order—the functions that are registered by atexit and _onexit, and then flushes all file buffers before it terminates the process. Функции _Exit и _exit завершают процесс без удаления локальных объектов потока или обработки atexit или функций _onexit , а также без очистки буферов потока. The _Exit and _exit functions terminate the process without destroying thread-local objects or processing atexit or _onexit functions, and without flushing stream buffers.
Несмотря на то, что вызовы Exit, _Exit и _exit не возвращают значение, значение в поле состояние становится доступным для среды размещения или ожидающего вызывающего процесса, если он существует, после завершения процесса. Although the exit, _Exit and _exit calls do not return a value, the value in status is made available to the host environment or waiting calling process, if one exists, after the process exits. Как правило, вызывающий объект устанавливает значение состояния 0, чтобы указать на нормальную работу, или на какое-либо другое значение, чтобы указать на ошибку. Typically, the caller sets the status value to 0 to indicate a normal exit, or to some other value to indicate an error. Значение состояния доступно для команды Batch операционной системы ERRORLEVEL и представляется одной из двух констант: EXIT_SUCCESS, представляющей значение 0, или EXIT_FAILURE, который представляет значение 1. The status value is available to the operating-system batch command ERRORLEVEL and is represented by one of two constants: EXIT_SUCCESS, which represents a value of 0, or EXIT_FAILURE, which represents a value of 1.
Функции Exit, _Exit, _exit, quick_exit, _cexit и _c_exit ведут себя следующим образом. The exit, _Exit, _exit, quick_exit, _cexit, and _c_exit functions behave as follows.
Функция Function | Описание Description |
---|---|
exit exit | Выполняет полные процедуры завершения библиотеки C, завершает процесс и предоставляет полученный код состояния среде узла. Performs complete C library termination procedures, terminates the process, and provides the supplied status code to the host environment. |
_Exit _Exit | Выполняет минимальные процедуры завершения библиотеки C, завершает процесс и предоставляет полученный код состояния среде узла. Performs minimal C library termination procedures, terminates the process, and provides the supplied status code to the host environment. |
_exit _exit | Выполняет минимальные процедуры завершения библиотеки C, завершает процесс и предоставляет полученный код состояния среде узла. Performs minimal C library termination procedures, terminates the process, and provides the supplied status code to the host environment. |
quick_exit quick_exit | Выполняет быстрые процедуры завершения библиотеки C, завершает процесс и предоставляет полученный код состояния среде узла. Performs quick C library termination procedures, terminates the process, and provides the supplied status code to the host environment. |
_cexit _cexit | Выполняет полные процедуры завершения библиотеки C и возвращает управление вызывающему объекту. Performs complete C library termination procedures and returns to the caller. Не завершает процесс. Does not terminate the process. |
_c_exit _c_exit | Выполняет минимальные процедуры завершения библиотеки C и возвращает управление вызывающему объекту. Performs minimal C library termination procedures and returns to the caller. Не завершает процесс. Does not terminate the process. |
При вызове функции Exit, _Exit или _exit деструкторы для всех временных или автоматических объектов, которые существуют во время вызова, не вызываются. When you call the exit, _Exit or _exit function, the destructors for any temporary or automatic objects that exist at the time of the call are not called. Автоматический объект — это не статический локальный объект, определенный в функции. An automatic object is a non-static local object defined in a function. Временный объект — это объект, созданный компилятором, например значение, возвращаемое вызовом функции. A temporary object is an object that’s created by the compiler, such as a value returned by a function call. Чтобы уничтожить автоматический объект перед вызовом функции Exit, _Exit или _exit, явно вызовите деструктор для объекта, как показано ниже: To destroy an automatic object before you call exit, _Exit, or _exit, explicitly call the destructor for the object, as shown here:
Не используйте DLL_PROCESS_ATTACH для вызова Exit из DllMain. Do not use DLL_PROCESS_ATTACH to call exit from DllMain. Чтобы выйти из функции DllMain , возвратите значение false из DLL_PROCESS_ATTACH. To exit the DLLMain function, return FALSE from DLL_PROCESS_ATTACH.
По умолчанию глобальное состояние этой функции ограничивается приложением. By default, this function’s global state is scoped to the application. Чтобы изменить это, см. раздел глобальное состояние в CRT. To change this, see Global state in the CRT.
Требования Requirements
Функция Function | Обязательный заголовок Required header |
---|---|
выход, _Exit _exit exit, _Exit, _exit |