exit()和aexit()
来源:互联网 发布:如何不越狱下载软件 编辑:程序博客网 时间:2024/06/07 09:03
1.exit()函数:
函数名: exit()
所在头文件:stdlib.h
功 能: 关闭所有文件,终止正在执行的程序。
exit(1)表示异常退出.这个1是返回给操作系统的不过在DOS好像不需要这个返回值
exit(x)(x不为0)都表示异常退出
exit(0)表示正常退出
函数声明:void exit(int state);
exit()函数用于在程序运行的过程中随时结束程序,exit的参数state是返回给操作 系统,返回0表示程序正常结束,非0表示程序非正常结束。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。
2.atexit()函数:
如果需要在main退出后再执行一段代码,可以使用aexit()函数注册一个函数。
aexit()函数介绍:
函数名: atexit
头文件:#include<stdlib.h>
功能: 注册终止函数(即main执行结束后调用的函数)
用法: int atexit(void(*func)(void));
注意:按照ISO C的规定,一个进程中最多可以用atexit()注册32个处理函数,这些函数将由exit自动调用。atexit()注册的函数类型应为不接受任何参数的void函数,exit调用这些注册函数的顺序与它们 注册时候的顺序相反,也即最先注册的最后调用,最后注册的最先调用。同一个函数如若登记多次,则也会被调用多次。
函数实例:#include <stdio.h>#include <stdlib.h>int atexit(void (*function)(void));void fn1(void);void fn2(void);void fn3(void);void fn4(void);int main(){ atexit(fn1); atexit(fn2); atexit(fn3); atexit(fn4); return 0;} void fn1(){ printf("next.\n");}void fn2(){ printf("executed ");}void fn3(){ printf("is ");}void fn4(){ printf("This ");}
main函数退出之后才执行atexit()注册的函数,上面的程序输出:This is executed next.
- exit()和aexit()
- exit和_ exit函数
- System.exit(0),System.exit(1)和System.exit(-1)
- Customer Exit 和 User Exit 的不同之处
- Application.Exit和Environment.Exit区别
- Customer Exit 和 User Exit 的不同之处
- exit(0)和exit(1)解释
- Customer Exit 和 User Exit 的不同之处
- exit(0)和exit(1)区别
- Application.Exit和Environment.Exit的区别
- System.exit(0)和System.exit(1)
- System.exit(-1);和System.exit(0);
- Wait和Exit
- return 和exit
- exit()和atexit()
- exit()和_exit()
- exit 和 _exit
- exit和return区别
- Android Fragment完全解析,关于碎片你所需知道的一切
- 面试100题系列之19二分数组
- ACM需要学习的算法(最好是依次学)
- 最大子段和问题(Maximum Interval Sum)
- U-Boot启动过程完全分析
- exit()和aexit()
- 关于服务器项目日志的一个便捷处理
- CSDN的博客搜索功能太弱,教你怎么搜索自己博客的文章
- windows mysql 自动备份的几种方法
- stm32片上资源分析
- 计算机网络、计算机操作系统、数据结构、C++标准库学习小结
- 深入探讨 Java 类加载器
- static 变量使用
- sicp 习题2.28