Выход
Определено в заголовке <stdlib.h> | ||
|---|---|---|
void exit( int exit_code ); | (до C11) | |
_Noreturn void exit( int exit_code ); | (с C11) (до C23) | |
[[noreturn]] void exit( int exit_code ); | (с C23) |
Вызывает нормальное завершение программы.
Выполняется несколько этапов очистки:
- вызываются функции, переданные в
atexit, в обратном порядке регистрации - все потоки C сбрасываются и закрываются
- файлы, созданные
tmpfile, удаляются - управление возвращается в среду хоста. Если
exit_codeравно нулю илиEXIT_SUCCESS, возвращается определённое реализацией значение состояния, указывающее на успешное завершение. Еслиexit_codeравноEXIT_FAILURE, возвращается определённое реализацией значение состояния, указывающее на неудачное завершение. В остальных случаях возвращается определённое реализацией значение состояния.
Примечания
Функции, зарегистрированные с помощью at_quick_exit, не вызываются.
Поведение не определено, если программа вызывает exit более одного раза или если она вызывает exit и quick_exit.
Поведение не определено, если во время вызова функции, зарегистрированной с помощью atexit, функция завершается с longjmp.
Возврат из главной функции, либо с помощью оператора return, либо при достижении конца функции, вызывает exit(), передавая аргумент оператора return (или 0, если используется неявный возврат) как exit_code.
Параметры
| exit_code | - | код завершения программы |
Возвращаемое значение
(нет)
Пример
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp = fopen("data.txt","r");
if (fp == NULL)
{
fprintf(stderr, "error opening file data.txt in function main()\n");
exit( EXIT_FAILURE );
}
fclose(fp);
printf("Normal Return\n");
return EXIT_SUCCESS ;
}Возможный вывод:
error opening file data.txt in function main()
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.22.4.4 Функция exit (стр. 256)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.22.4.4 Функция exit (стр. 351-352)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.20.4.3 Функция exit (стр. 315-316)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.10.4.3 Функция exit
См. также
| вызывает аварийное завершение программы (без очистки) (функция) |
|
регистрирует функцию для вызова при exit() вызове (функция) |
|
|
(C11) | вызывает нормальное завершение программы без полной очистки (функция) |
Документация C++ для exit |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/program/exit