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::Exited