Spec-Zone.ru › C

at_quick_exit

Определено в заголовке <stdlib.h>
int at_quick_exit( void (*func)(void) );
(с C11)

Регистрирует функцию, на которую указывает func, для вызова при быстром завершении программы (через quick_exit).

Вызов функции из нескольких потоков не вызывает гонку данных. Реализация гарантирует поддержку регистрации как минимум 32 функций. Точное ограничение определяется реализацией.

Зарегистрированные функции не будут вызываться при нормальном завершении программы. Если функцию необходимо вызвать в этом случае, необходимо использовать atexit.

Параметры

func - указатель на функцию, которая должна быть вызвана при быстром завершении программы

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

​0​ , если регистрация прошла успешно, в противном случае ненулевое значение.

Пример

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

Вывод:

pushed second
pushed first

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.22.4.3 Функция at_quick_exit (с. 255)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.22.4.3 Функция at_quick_exit (с. 351)

См. также

abort
вызывает аварийное завершение программы (без очистки)
(функция)
exit
вызывает нормальное завершение программы с очисткой
(функция)
atexit
регистрирует функцию, которая должна быть вызвана при exit() вызове
(функция)
quick_exit
(C11)
вызывает нормальное завершение программы без полной очистки
(функция)
Документация C++ для at_quick_exit

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/program/at_quick_exit

Spec-Zone.ru

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