当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 atexit用法及代码示例


C语言stdlib头文件(stdlib.h)中atexit函数的用法及代码示例。

用法:

int atexit (void (*func)(void));
extern "C" int atexit (void (*func)(void));
extern "C++" int atexit (void (*func)(void));
设置要在退出时执行的函数
所指向的函数func当程序正常终止时,将自动调用不带参数的参数。

如果不止一个atexit函数是通过对该函数的不同调用指定的,它们都以相反的顺序作为堆栈执行(即,指定的最后一个函数是在退出时第一个执行的函数)。

可以注册一个函数以在退出处执行一次以上。

如果atexit被称为exit,则调用是否成功取决于具体的系统和库的实现(未指明的行为)。

如果函数已注册atexit引发异常,在终止调用时它不提供处理程序,terminate被自动称为(C++)。

特定的库实现可能会限制可以向其注册的函数调用的数量atexit,但不能少于32个函数调用。

参数

function
要调用的函数。该函数应不返回任何值且不接受任何参数。

返回值

如果该函数已成功注册,则返回零值。
如果失败,则返回非零值。

示例

/* atexit example */
#include <stdio.h>      /* puts */
#include <stdlib.h>     /* atexit */

void fnExit1 (void)
{
  puts ("Exit function 1.");
}

void fnExit2 (void)
{
  puts ("Exit function 2.");
}

int main ()
{
  atexit (fnExit1);
  atexit (fnExit2);
  puts ("Main function.");
  return 0;
}


输出:

Main function.
Exit function 2.
Exit function 1.



相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C atexit function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。