转自:http://www.cnblogs.com/fixer/archive/2013/05/14/3078660.html

_exit():

跟exit功能大致相同,区别在于_exit不会清空所有缓冲区,关闭所有I/O通道

exit():

在调用时,会做大部分清理工作,但是决不会销毁局部对象,因为没有stack unwinding。会进行的清理工作包括:销毁所有static和global对象,清空所有缓冲区,关闭所有I/O通道。终止前会调用经由 atexit()登录的函数,atexit如果抛出异常,则调用terminate()。

abort():

调用时,不进行任何清理工作。直接终止程序。

retrun:

调用时,进行stack unwinding,调用局部对象析构函数,清理局部对象。如果在main中,则之后再交由系统调用exit()。

需要注意的是,如果main函数没有写以上的任何调用,则隐式调用return。

测试代码如下:

 1 #include<iostream>
 2 #include<stdlib.h>
 3
 4 using std::cout;  5 using std::endl;  6  7 class A  8 {  9 public: 10  A(){} 11 ~A(){cout << "A delete" << endl;} 12 }; 13 14 class B 15 { 16 public: 17  B(){} 18 ~B(){cout << "B delete" << endl;} 19 }; 20 21 int main(int argc, char** argv) 22 { 23 static B testB; 24  A testA; 25 cout << "test code"; //<< endl;//注意此处加不加endl在_exit下的区别 26 _exit(0); 27 //exit(0); 28 //abort(); 29 //return 0; 30 } 31 32 

转载于:https://www.cnblogs.com/sjxbg/p/5722304.html

exit、_exit、abort、return的区别相关推荐

  1. exit(0)与exit(1)return的区别

    exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: return():返回函数,若在主函数中,则会退出函数并返回一值. 详细说: 1. return返回函数值,是关键字 ...

  2. C语言中exit(0) 、exit(1) 和return的区别

    C语言中的exit 文字描述 代码验证 return 表示返回 , 函数返回 exit 表示程序退出 exit(0) 表示正常退出,代码为1 exit(1) 表示异常退出,代码为1 文字描述 retu ...

  3. 在Linux中,_exit()、exit(0)、exit(1)、和return的区别!!

    功能: _exit() :退出程序: exit(0):运行正常退出程序: exit(1):运行异常退出程序: return():返回函数,若在主函数中,则会退出函数并返回值. _exit() 和 ex ...

  4. C语言exit、abort、return的区别

    exit(): 在调用时,会做大部分清理工作,但是决不会销毁局部对象,因为没有stack unwinding. 会进行的清理工作包括:销毁所有static和global对象,清空所有缓冲区,关闭所有I ...

  5. Linux编程中的坑——C++中exit和return的区别

    今天遇到一个坑,折腾了一天才把这个坑填上,情况是这样的: 写了段代码,在main()函数中创建一个分离线程,结果这个线程什么都没干就直接挂掉了,代码长这样: [cpp] view plaincopy ...

  6. exit()函数详解与Exit() 和 Return() 的区别

    exit(0) 表示程序正常, exit(1)/exit(-1)表示程序异常退出 exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束 return() 是当前函数返回, ...

  7. linux脚本中的exit,Shell中exit和return的区别讲解

    1.exit命令 exit命令是Shell内建命令,用于退出当前Shell进程.使用格式如下: exit [] 可以指定退出状态n,n的取值范围是0-255,一般情况下,0表示正常退出,非零表示异常退 ...

  8. Shell 中 exit 和 return 的区别

    1.exit 命令 exit 命令是 Shell 内建命令,用于退出当前 Shell 进程.使用格式如下: exit [N] 可以指定退出状态 N,N 的取值范围是 0-255,一般情况下,0 表示正 ...

  9. C语言中的exit与return的区别

    exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束 exit(0)表示进程正常退出. 返回 0; exit(1)表示进程非正常退出. 返回 1. exit与return ...

最新文章

  1. 使用Clonezilla克隆系统
  2. Flash使用域内存api的MD5,速度超快!
  3. PXE网络装机之centos7(批量自动装机)
  4. mysql 为游标赋值_mysql 存储过程之游标
  5. 由点及面,专有云ABC Stack如何护航云平台安全?
  6. crudandroidandroid——CRUD(在上一篇博客的基础上)
  7. 利用Javascript的“函数重载”实现自定义Alert样式
  8. S50 14443卡和15693卡 读写研究
  9. 一个搜索迷宫出路的程序
  10. 全民编程时代,程序员该如何保住饭碗?
  11. 开源SIP服务器加密软件NethidPro升级
  12. 拓端tecdat|R语言使用ARIMA模型预测股票收益时间序列
  13. MySQL 中文的乱码问题
  14. 设置a标签下载文件的文件名
  15. 华为存储更换故障硬盘
  16. Redis中SDS简单动态字符串
  17. 微软输入法和搜狗输入法中的双拼
  18. python getattrribute_Python学习——面向对象高级之反射
  19. 什么是软考?软考有什么作用?
  20. POJ 3984-迷宫问题 (dfs)

热门文章

  1. Oracle修改globalname,oracle修改global_name和service_name
  2. 思维导图 源码 php,使用思维导图,优雅的完成自己的代码
  3. python中的post和get请求的区别_HTTP: Request中的post和get区别
  4. Arm发布v9体系架构:Cortex-X2、Cortex-A710和Cortex-A510
  5. python实现whois查询_利用Python实现域名查询和whois查询
  6. C语言学习笔记---结构体的定义和初始化
  7. 10折交叉验证(10-fold Cross Validation)与留一法(Leave-One-Out)、分层采样(Stratification)
  8. windows安装mysql-8.0.12-winx64和Navicat客户端连接(亲测有效)
  9. sql order by 结合case when then
  10. Uniform Distribution均匀分布