免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: grizzly
打印 上一主题 下一主题

[C++] C++:为什么依赖fstream默认的析构中close关闭流不是好的习惯 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-06-08 07:23 |只看该作者
我想到的有几点, 一是尽快释放资源, 二是尽量不依赖其它人的实现. 三是如果其它模块不是用这种释放方式, 就会存在2种释放方式, 带了不一致性, 为BUG的存在做了准备.

论坛徽章:
0
12 [报告]
发表于 2007-06-08 08:19 |只看该作者
原帖由 grizzly 于 2007-6-7 23:24 发表
面试被问的。我当时就是呆呆的看着考官。最后,我让他解释一下,他说没有必要。靠。

他也不知道吧。
本来流对象在析构前close就是脱裤子放屁,
面试考官未必什么都懂,懂的未必都正确。

论坛徽章:
0
13 [报告]
发表于 2007-06-08 08:40 |只看该作者
fstream f;
f.open("file.txt");
....
f<<flush;
f.close();

论坛徽章:
0
14 [报告]
发表于 2007-06-08 08:43 |只看该作者
看情况了,比如你的程序要打开很多文件,而且每个文件只打开存取一次,那么在不用时关闭文件,我觉的是有必要的。

论坛徽章:
0
15 [报告]
发表于 2007-06-08 09:50 |只看该作者
欢迎讨论。其实,如果认为每有不好的,也可以说说为什么没有不好。我觉得,在面试的时候,就算与考官意见相左,能说个所以然也好。不过,我是傻那了。

论坛徽章:
0
16 [报告]
发表于 2007-06-08 10:58 |只看该作者
如果缓冲中有数据,close的时候,会写到磁盘上面,如果磁盘满,或者出现其它问题,close的时候,会返回错误或者抛出异常。对于一个健壮的程序,应该处理这种可能,防止数据丢失。
在对象析构过程中,如果缓冲中有未写到磁盘的数据,也会向磁盘写数据。可是,如果此时出现错误,应用程序不方便做出处理,很可能造成数据丢失。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP