Spec-Zone.ru › C

Выход

Определено в заголовке <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

См. также

abort
вызывает аварийное завершение программы (без очистки)
(функция)
atexit
регистрирует функцию для вызова при exit() вызове
(функция)
quick_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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API