Namespaces
Variants

quick_exit

From cppreference.net
Определено в заголовке <stdlib.h>
_Noreturn void quick_exit ( int exit_code ) ;
(начиная с C11)
(до C23)
[ [ noreturn ] ] void quick_exit ( int exit_code ) ;
(начиная с C23)

Вызывает нормальное завершение программы без полной очистки ресурсов.

Функции, переданные в at_quick_exit , вызываются в обратном порядке их регистрации. После вызова зарегистрированных функций вызывается _Exit ( exit_code ) .

Функции, переданные в atexit или обработчики сигналов, переданные в signal не вызываются.

Содержание

Параметры

exit_code - статус завершения программы

Возвращаемое значение

(нет)

Пример

#include <stdlib.h>
#include <stdio.h>
void f1(void)
{
    puts("pushed first");
    fflush(stdout);
}
void f2(void)
{
    puts("pushed second");
}
void f3(void)
{
    puts("won't be called");
}
int main(void)
{
    at_quick_exit(f1);
    at_quick_exit(f2);
    atexit(f3);
    quick_exit(0);
}

Вывод:

pushed second
pushed first

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.22.4.7 Функция quick_exit (стр. 257)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.22.4.7 Функция quick_exit (стр. 353)

Смотрите также

вызывает аварийное завершение программы (без очистки)
(функция)
регистрирует функцию для вызова при exit() вызове
(функция)
регистрирует функцию для вызова при quick_exit вызове
(функция)
C++ documentation для quick_exit