exit与return的区别
来源:互联网 发布:ok三连冠科比数据 编辑:程序博客网 时间:2024/05/02 04:47
一直没有太留意这两者的区别,但是在看UNIX网络编程的时候遇到问题了,我很疑惑,书中很多的系统调用都被作者替换成了包裹函数,而这些包裹函数最后都是调用了一个统一的错误处理函数,结构如下,我很奇怪为什么调用包裹函数之后程序会直接退出,按我理解应该用exec直接替换掉主调函数才能使其终结。。。。这里的症结就是没有理解return和exit。先看一下我给的例子:
int main(){
Packet_Func();
//if error occures,will the following code continue running?
...code...
}
int Packet_Fun(){
if(error occured)
handle_error();
}
int handle_error(){
//handle error
exit(-1);
}
试验的结果相信大家都知道了,就是一旦handle_error返回,整个程序是会结束的,那么为什么呢?我查了一下,真是惭愧。。。。
exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程,而return是返回函数值并退出函数
2,return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
3,exit函数是退出应用程序,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息。
- exit 与 return 的区别
- return与exit的区别
- exit与return的区别
- exit 与 return 的区别!
- exit与return的区别
- exit 与return 的区别
- exit 与 return 的区别
- return与exit的区别
- exit与return的区别
- exit与return的区别
- return与exit()的区别
- exit与return区别
- exit与return区别
- exit与return区别
- system.exit()与return的区别
- c 中 exit 与 return 的区别
- exit函数与return的区别
- linux 中 return 与exit的区别
- spring注解方式自动注入接口的实现子类
- 使用mfc CWnd 自绘实现一个类似于QQ好友的一个控件
- 基础加强_注解Annotation
- ios多台电脑,共用一个证书密密钥
- SAP BO与SAP业务系统的连接方式
- exit与return的区别
- Struts2返回JSON数据的具体应用范例
- java mail 笔记
- C++之const成员函数
- Java 图片加水印
- 80x86中的ldt 与 gdt 理解
- linux查找文件路径
- ZSTU-1826:Square
- Learning ADSP-TS201系列--Interrupt Pin