?
This document uses PHP Chinese website manual Release
在頭文件<stdlib.h>中定義 | ||
---|---|---|
int atexit(void(* func)(void)); |
注冊func指向的函數,在正常程序終止時(通過exit()或從main()返回)調用。 這些函數將按照它們注冊的相反順序調用,即最后注冊的函數將首先執(zhí)行。
相同的功能可以被多次注冊。
atexit
是線程安全的:從多個線程調用函數不會導致數據競爭。
該實現保證支持至少32個函數的注冊。 確切的限制是實現定義的。
功能 | - | 指向正常程序終止時要調用的函數的指針 |
---|
如果注冊成功,則返回0
,否則為非零值。
#include <stdlib.h>#include <stdio.h> void f1(void){ puts("pushed first");} void f2(void){ puts("pushed second");} int main(void){ atexit(f1); atexit(f2);}
輸出:
pushed second pushed first
C11標準(ISO / IEC 9899:2011):
7.22.4.2 atexit函數(p:350)
C99標準(ISO / IEC 9899:1999):
7.20.4.2 atexit函數(p:315)
C89 / C90標準(ISO / IEC 9899:1990):
4.10.4.2 atexit函數
at_quick_exit(C11) | 注冊要在quick_exit調用(函數)上調用的函數 |
---|
| 用于atexit的C ++文檔 |