# at_quick_exit

< c‎ | program

定义于头文件 `<stdlib.h>` |  |
int at_quick_exit( void (*func)(void) ); |  | (C11 起)

注册 `func` 所指向的函数，使它在程序快速终止（通过 quick_exit ）时得到调用。

`at_quick_exit` 是线程安全的：从多个线程调用此函数不会导入数据竞争。实现应当支持注册至少 32 个函数。

### 参数

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

### 引用

- C11 标准（ISO/IEC 9899:2011）：

  - 7.22.4.3 The at_quick_exit function (p: 351)

### 参阅

atexit | 注册一个要在调用 `exit()` 时调用的函数 (函数)