main函数之前、之后调用的函数
来源:互联网 发布:github源码怎么运行 编辑:程序博客网 时间:2024/05/16 12:23
本以为主函数main被返回之后操作系统将回收资源,却不知一个重要的函数—atexit()。
程序退出的时候需要一些诸如释放资源的操作,但是程序的退出有很多种,可能是main函数结束范围一个值传递给exit(),也可能是一些其他的原因,所以需要一种与程序结束方式无关的方法来进行程序退出时必要的处理。
函数原型:int atexit(void(*)(void));
函数作用:注册一个函数,这个函数在程序结束的时候被调用
#include<cstdlib>#include<iostream>using namespace std;void fun1(){ cout<<"fun1"<<endl;}void fun2(){ cout<<"fun2"<<endl;}int main(){ atexit(fun1);//注册fun1,主函数终止时调用 atexit(fun2);//注册fun2,主函数终止时调用 cout<<"mian exit"<<endl; return 0;}//运行结果:main exitfun2fun1
特性介绍:
如果想定义在main函数之前调用的函数,可以在函数的声明之后加上一句“__attribute__((constructor))”,如下:
int before()__attribute__((constructor));
如果想定义在main函数之后调用的函数,可以在函数的声明之后加上一句“__attribute__((destructor))”,如下:
int after()__attribute__((destructor));
可以看得出来,应该类似于c++中的构造和析构。
- main函数之前、之后调用的函数
- 在main()之前和之后调用自己的函数
- main函数之后的调用
- main函数之前 与 之后
- 在main函数之前被调用的函数
- main函数之前的工作
- 在main()之前调用Bootstrap函数
- C++面试之main函数之后的调用
- 在main函数之前和之后执行一些操作
- C/C++在main函数之前和之后会做些什么
- 在main函数执行之前和之后执行一段代码
- main函数之前之后做了哪些工作
- 如何使得代码在main函数之前/之后执行
- 让一个函数在main之前 或之后运行
- 在main函数执行之前和执行之后执行的方法
- 在main函数执行之前和执行之后执行的方法<转载>
- 在main函数执行之前和执行之后执行的方法
- main函数的调用
- redhat6.3 sabma共享目录在window下无权限访问
- [转载]设计模式
- linux 不常用命令
- 存储过程在查询分析器中可运行出结果,但用程序调用无法得出结果
- jquery01
- main函数之前、之后调用的函数
- 关于C语言的15个指针面试题
- 1054 相邻字符判相等
- 邮票分你一半 南工456
- C++
- oracle11g释放recovery_file_dest,解决ORA-00257
- linux多文件编译方法
- linux mailx 发送邮件
- vim配置及修改vim颜色