atexit
來自 cppreference.com
在標頭檔案 <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) ) return EXIT_SUCCESS ; // atexit registration failed return EXIT_FAILURE ; } // <- if registration was successful calls f2, f2, f1
輸出
f2 f2 f1
[編輯] 參考
- C17 標準 (ISO/IEC 9899:2018)
- 7.22.4.2 atexit 函式 (p: 255)
- 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)
- 7.10.4.2 atexit 函式 (p: 156)
[編輯] 參閱
(C11) |
註冊一個函式,以便在呼叫 quick_exit 時被呼叫 (function) |
C++ 文件 關於 atexit
|