Namespaces
Variants

at_quick_exit

From cppreference.net
定义于头文件 <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)

参阅

导致程序异常终止(不进行清理)
(function)
导致程序正常终止并进行清理
(function)
注册在调用 exit() 时要执行的函数
(function)
导致程序正常终止但不完全清理
(function)
C++ documentation for at_quick_exit