c语言中atexit()函数的作用和用法

分类:知识百科 日期: 点击:0

c语言中的atexit()函数是一个注册函数,它可以在每次程序退出时调用一个或多个函数,可以用来做一些清理工作,比如释放内存、关闭文件等。

使用方法

atexit()函数的原型为:

int atexit(void (*func)(void));

其中func参数是一个函数指针,指向要在程序退出时调用的函数。返回值为0表示注册成功,返回值为非0表示注册失败。

atexit()函数可以注册多个函数,这些函数会按照注册的先后顺序在程序退出时被调用。例如:

#include 

void fun1(void)
{
    printf("fun1\n");
}

void fun2(void)
{
    printf("fun2\n");
}

int main(void)
{
    atexit(fun1);
    atexit(fun2);
    return 0;
}

此时,在程序退出时,先会调用fun1()函数,再调用fun2()函数。

除了使用atexit()函数注册函数,还可以使用on_exit()函数来注册函数。on_exit()函数的原型为:

int on_exit(void (*func)(int, void *), void *arg);

其中func是要注册的函数,arg是传递给func函数的参数,函数原型为:

void func(int status, void *arg);

其中status是程序退出时的状态,arg是传递给on_exit()函数的参数。

atexit()函数和on_exit()函数都可以用来注册函数,但是它们有一些不同的地方:

  • atexit()函数只能注册没有参数的函数,而on_exit()函数可以注册有参数的函数。
  • on_exit()函数可以传递参数给注册的函数,而atexit()函数不能传递参数。
  • on_exit()函数可以指定注册的函数在程序退出时的执行顺序,而atexit()函数只能按照先后注册的顺序来执行函数。

atexit()函数和on_exit()函数都可以用来注册函数,在程序退出时调用这些函数,可以用来做一些清理工作,比如释放内存、关闭文件等。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。