atexit()函数

转载 2013年12月04日 19:56:47
很多时候我们需要在程序退出的时候做一些诸如释放资源的操作,但程序退出的方式有很多种,比如main()函数运行结束、在程序的某个地方用exit() 结束程序、用户通过Ctrl+C或Ctrl+break操作来终止程序等等,因此需要有一种与程序退出方式无关的方法来进行程序退出时的必要处理。方法就 是用atexit()函数来注册程序正常终止时要被调用的函数。

    atexit()函数的参数是一个函数指针,函数指针指向一个没有参数也没有返回值的函数。atexit()的函数原型是:int atexit (void (*)(void));

    在一个程序中最多可以用atexit()注册32个处理函数,这些处理函数的调用顺序与其注册的顺序相反,也即最先注册的最后调用,最后注册的最先调用。

下面是一段代码示例:
#include<stdlib.h>   //使用atexit()函数所必须包含的头文件stdlib.h
#include<stdio.h>
void fn1(void);
int main(void)
{
 atexit(fn1);
 printf("a./n");
 return 0;
}
void fn1()
{
 printf("b./n");
}
 输出结果是:

a.

b.

相关文章推荐

学习笔记之atexit()函数

最近在学习进程有关的知识,遇到了atexit()这个函数 这个函数有什么用呢?它会注册一个函数,当进程结束后就会调用被注册的函数。 可以看到它的参数是一个函数指针。 写一个简单的程序测试一下...

Linux中的file_struct、t命令以及atexit函数有关知识

1、struct file结构体定义在include/Linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的 struct file。它由内核在打开文...

进程终止函数:abort, atexit, exit, _exit, _Exit

#include  void exit(int status); void _Exit(int status); int atexit( void(*func)(void) );   #in...

关于atexit函数的使用以及权限t的设置与测试

再了解atexit函数之前,先加药介绍一下进程的终止方式有哪些? 进程终止的方式有8种,前5种为正常终止,后三种为异常终止:       1 从main函数返回;       2 调用exit函...

atexit() 和 exit() 函数

我们通常认为C语言的起始函数是main函数,实质上一个程序的启动函数并不一定是main函数,这个可以采用链接器来设置,但是gcc中默认main就是C语言的入口函数,在main函数启动之前,内核会调用一...

linux系统编程之进程(四):进程退出exit,_exit区别即atexit函数

(转自)作者:mickole  出处:http://www.cnblogs.com/mickole/ 一,进程终止有5种方式: 正常退出: 从main函数返回调用exit调用_exi...

Linux 进程的基本控制—atexit、on_exit函数、文件锁

进程的基本控制:       进程控制函数:pause、sleep、usleep   函数atexit  on_exit   atexit函数:     #include ...

浅析exit()和atexit()函数

当内核使用一个一个exec函数执行c程序时,在调用main函数之前先调用一个特殊的启动例程,可执行程序需将此例程指定为程序的起始地址。启动例程从内核获取命令行参数和环境变量,然后为调用mian函数做好...

详解C标准库中的atexit()函数

测试背景:centos6.5,gcc编译器   内核版本 2.6.32-431.el6.i686 函数:atexit 函数声明: int atexit(void (* function) (v...

linux下的atexit()函数

很多时候我们需要在程序退出的时候做一些诸如释放资源的操作,但程序退出的方式有很多种,比如main()函数运行结束、在程序的某个地方用exit() 结束程序、用户通过Ctrl+C或Ctrl+break操...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)