at_quick_exit

来自cppreference.com
< c‎ | program
在标头 <stdlib.h> 定义
int at_quick_exit( void (*func)(void) );
(C11 起)

注册 func 所指向的函数,使它在程序快速终止(通过 quick_exit)时得到调用。

at_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 The at_quick_exit function (第 255 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.22.4.3 The at_quick_exit function (第 351 页)

参阅

引发非正常的程序终止(不清理)
(函数)
引发正常的程序终止并清理
(函数)
注册一个要在调用 exit() 时调用的函数
(函数)
引发正常的程序终止但不完全清理
(函数)