atexit

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

注册 func 所指向的函数,使它在程序正常终止(通过 exit() 或从 main() 返回)时得到调用。将以注册顺序的逆序调用这些函数,即首先执行最后调用的函数。

可以注册同一函数多于一次。

实现保证支持注册至少 32 个函数。确切的极限是由实现定义的。

目录

[编辑]参数

func - 指向要在程序正常终止时调用的函数的指针

[编辑]返回值

若注册成功则为 0,否则为非零值。

[编辑]示例

#include <stdlib.h>#include <stdio.h>   void f1(void){puts("f1");}   void f2(void){puts("f2");}   int main(void){if(! atexit(f1)&&! atexit(f2)&&! atexit(f2))returnEXIT_SUCCESS;   // atexit registration failedreturnEXIT_FAILURE;   }// <- 若注册成功则会调用 f2, f2, f1

输出:

f2 f2 f1

[编辑]引用

  • C17 标准(ISO/IEC 9899:2018):
  • 7.22.4.2 The atexit function (第 255 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.22.4.2 The atexit function (第 350 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.20.4.2 The atexit function (第 315 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 7.10.4.2 The atexit function (第 156 页)

[编辑]参阅

注册要在调用 quick_exit 时调用的函数
(函数)[编辑]
atexit 的 C++ 文档
close