- 浏览: 438805 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
原文地址:http://blog.csdn.net/tangboyun/archive/2010/02/04/5288799.aspx
exit():
在调用时,会做大部分清理工作,但是决不会销毁局部对象,因为没有stack unwinding。
会进行的清理工作包括:销毁所有static和global对象,清空所有缓冲区,关闭所有I/O通道。终止前会调用经由atexit()登录的函数,atexit如果抛出异常,则调用terminate()。
abort():
调用时,不进行任何清理工作。直接终止程序。
retrun:
调用时,进行stack unwinding,调用局部对象析构函数,清理局部对象。如果在main中,则之后再交由系统调用exit()。
示例:
抄袭来源:http://dev.firnow.com/course/6_system/linux/Linuxjs/20100326/201419.html
return返回,可析构
main或函数中的局部变量,尤其要注意局部对象,如不析构可能造成
内存泄露。exit返回不析构main或函数中的局部变量,但执行收工函数,
故可析构全局变量(对象)。abort不析构main或函数中的局部变量,也不
执行收工函数,故全局和局部对象都不析构。
所以,用return更能避免内存泄露,在C++中用abort和exit都不是好
习惯。
http://hi.baidu.com/ilotus_y/blog/item/2e1a6339d00e0bf43a87cebb.html
发表评论
-
float equal
2013-05-23 18:21 775- (BOOL)floatA:(float)f1 equalB ... -
C++序列化
2012-07-12 09:51 533http://hi.baidu.com/ewook/item/ ... -
C++著名内裤
2011-12-02 14:00 7681、C++各大有名库的介绍 ... -
C++写C
2011-09-06 17:23 584在C++中写C,标准头文件写法 #ifndef __AB ... -
errno.h
2011-05-05 14:27 647#define EPERM 1 ... -
__cplusplus
2011-04-21 15:09 701http://www.cnblogs.com/stonecra ... -
Pthread__常用
2011-04-21 11:46 807http://blogold.chinaunix.net/u/ ... -
常用预编译
2011-04-21 10:32 609#if defined(WIN32) || defined ... -
C++__容器
2011-04-18 10:16 519http://apps.hi.baidu.com/share/ ... -
C++模板
2011-03-29 14:27 594内容主要来至《钱能C++程序设计教程》&《C++ Pr ... -
交叉引用、前置声明
2011-03-02 09:40 767有两个类相互引用了,编译器报错。 原因是两个类交叉引用: A ... -
typedef的四个用途和两个陷阱
2010-12-14 12:34 608http://hi.baidu.com/changfeng01 ... -
第五届开源小组招新题目
2010-12-03 21:56 701这是学校的开源小组招新题。 08年时我是第二届的组长,不知不觉 ... -
string const char*
2010-12-02 16:13 731http://topic.csdn.net/u/2008092 ... -
CPP Container
2010-11-10 09:20 644延后整理。。。 -
C语言运算符优先级
2010-11-02 17:45 740优先级 运算符 ... -
point point
2010-11-02 17:23 580http://learn.akae.cn/media/ch23 ... -
位运算
2010-11-01 11:33 747千百年来,位运算始终没出现在我写的代码里,今天终于出现了。 ... -
Unix环境下操作特大文件
2010-11-01 11:03 567http://hi.baidu.com/jiangfeng11 ... -
GCC在C语言中内嵌汇编
2010-10-22 14:48 1331http://hi.baidu.com/liu_bin0101 ...
相关推荐
exit()函数与_exit()函数及return关键字的区别: exit()和_exit()函数都可以用于结束进程,不过_exit()调用之后会立即进入内核,而exit()函数会先执行一些清理之后才会进入内核,比如调用各种终止处理程序,关闭...
字母A开头函数函数名: abort功 能: 异常终止一个进程用 法: void abort(void);程序例:#include <stdio.h>#include <stdlib.h>int main(void){printf("Calling abort()\n");abort();return 0; /* This is never ...
20.1 老的C++I/O与现代的C++I/O 20.2 C++的流 20.3 C++的流类 20.4格式化的I/O 20.5 重载 第21章 C++文件的输入/输出 21.1 和文件类 21.2 打开和关闭文件 21.3 读写文本文件 21.4 无格式和二进制I/O 21.5 其他get()...
8.9. exit()和return有什么不同? 136 第9章 数 组 137 9.1. 数组的下标总是从0开始吗? 139 9.2. 可以使用数组后面第一个元素的地址吗? 139 9.3. 什么要小心对待位于数组后面的那些元素的地址呢? 140 9.4. 在把数组...
8.9 exit()和return有什么不同? . 第9章 数组 9.1 数组的下标总是从0开始吗? 9.2 可以使用数组后面第—个元素的地址吗? 9.3 为什么要小心对待位于数组后面的那些元素的地址呢? 9.4 在把数组作为...
《你必须知道的495个C语言问题》以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预...
1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 *1.26 main的正确定义是什么...
o 3.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外部数据文件进行 "二进制" 读写。能否关掉填充, 或者控制结构域的对齐方式? o 3.11 为什么 sizeof 返回的值大于结构的期望值, 是不是尾部有填充? ...
2.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外 部数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域 的对齐方式? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.11...