Namespaces
Variants

exit

From cppreference.net
Определено в заголовочном файле <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 .

Возврат из функции main , либо с помощью оператора 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() вызове
(функция)
вызывает нормальное завершение программы без полной очистки
(функция)