跳轉到內容

C 程式設計/stdlib.h/atexit

來自華夏公益教科書,自由的教科書

atexit(在退出時)是一個 C 程式語言中的函式,用於註冊給定的函式,以便在正常程序終止時執行,無論是透過 exit 還是透過從程式的 main 函式返回。

atexit 函式以要註冊的回撥函式的引用作為引數。這樣註冊的函式按註冊順序的相反順序呼叫;不傳遞任何引數。

POSIX 使用

[編輯 | 編輯原始碼]

atexit 函式由 POSIX 規範標準化。

函式原型如下

int atexit(void (*function)(void));

如果函式成功完成執行,它將返回零 (0)。非零返回值表示錯誤。

POSIX 要求 atexit 的實現至少允許註冊 ATEXIT_MAX (32) 個此類函式。

以下示例演示了 atexit 函式的使用。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void end(void) {
        printf("[ DONE ]\n");
}
int main(){
        long ret;
        ret = sysconf(_SC_ATEXIT_MAX);
        printf("ATEXIT_MAX = %ld\n", ret);
        if( atexit(end) != 0 ) {
                perror("Unable to set exit function\n");
                return EXIT_FAILURE;
        }
        printf( "About to quit... " );
        return EXIT_SUCCESS;
}

參考文獻

[編輯 | 編輯原始碼]

ISO/IEC 9899:1999 規範 (PDF). p. 315, § 7.20.4.2.

[編輯 | 編輯原始碼]
華夏公益教科書