名稱空間
變體
操作

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) )
        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)

[編輯] 參閱

註冊一個函式,以便在呼叫 quick_exit 時被呼叫
(function) [編輯]
C++ 文件 關於 atexit