atexit
處理結束時指定的函式。
int atexit(
void (__cdecl *func )( void )
);
參數
- func
若要呼叫的函式。
傳回值
atexit如果發生錯誤,傳回 0,如果成功或非零的值。
備註
atexit函式會傳遞的函式的位址 (func) 程式正常結束時呼叫。 後續的呼叫,以atexit建立的順序執行最後一個單元先進先出 (LIFO) 的函式的暫存器。 函式傳遞至atexit不能接受參數。 atexit與**_onexit**使用保留的函式的暫存器的堆積。 因此,可以註冊的函式數目僅受限於堆積記憶體。
在 [程式碼atexit函式不應該包含任何的依存性可能都已經卸載時的任何 DLL atexit函式被呼叫。
若要產生符合 ANSI 標準的應用程式,使用 ANSI 標準atexit函式 (而非類似**_onexit**函式)。
需求
常式 |
所需的標頭 |
---|---|
atexit |
<stdlib.h> |
範例
這個程式推入四個功能至堆疊時執行的函式的atexit呼叫。 當程式結束時,這些程式會在上執行中的最後一個先出 」 基準來。
// crt_atexit.c
#include <stdlib.h>
#include <stdio.h>
void fn1( void ), fn2( void ), fn3( void ), fn4( void );
int main( void )
{
atexit( fn1 );
atexit( fn2 );
atexit( fn3 );
atexit( fn4 );
printf( "This is executed first.\n" );
}
void fn1()
{
printf( "next.\n" );
}
void fn2()
{
printf( "executed " );
}
void fn3()
{
printf( "is " );
}
void fn4()
{
printf( "This " );
}
.NET Framework 對等用法
System::Diagnostics::Process:: 結束