hur.cn - 华软网

 热门搜索

使用CFile,文件打开后需要关闭吗

  作者:未知    来源:网络    更新时间:2011/6/10
1.永不close的话,有什么影响?
2.频繁open/close,有什么影响?
3.环境是FAT over Nandflash,文件的open/close会增加读写flash的次数吗?
---华软 网友回答---
open了必须close
频繁的open close有无影响不接触 你可以吧内容读到内存不久不需要频繁的操作了吗
---华软网友回复---
不关闭句柄,文件不能被删除等
频繁open/close只不过会影响性能
---华软网友回复---
必须关闭  程序开始时开启  退出时关闭,要不会对程序影响。试想一个文件老是打开关闭会是什么样子。可以看到很多程序打开也挺慢的。
---华软网友回复---
引用 1 楼 tt2com 的回复:
open了必须close
频繁的open close有无影响不接触 你可以吧内容读到内存不久不需要频繁的操作了吗


引用 2 楼 oyljerry 的回复:
不关闭句柄,文件不能被删除等
频繁open/close只不过会影响性能


MFC中,析构CFile时会自动close,即应用程序结束的时候必然close,且该文件为此模块专用,因此不存在“必须close”的说法,也不用考虑该文件被其他程序使用。
会出现频繁写入的情况,不可避免。

频繁open/close会影响哪方面的性能?会增加FAT读写次数吗?
---华软网友回复---
引用 3 楼 huahua1126 的回复:
必须关闭 程序开始时开启 退出时关闭,要不会对程序影响。试想一个文件老是打开关闭会是什么样子。可以看到很多程序打开也挺慢的。


我也偏向这个思路,那么长时间不释放文件句柄对系统不会有影响吧?
---华软网友回复---
既然你不想频繁的开关操作为什么不选择一次读到内存中内?你的内存很小吗?开来不管非常不好,资源泄漏了。我搞不明白FAT over Nandflash是啥东西,不过应该不好出现多次开关操作就over的flash吧,那样也太垃圾了,
---华软网友回复---
看你怎么实例化的. CFile f; 定义个局部的.则在他销毁时。他会自己关闭文件句柄的. mfc里有源码.
new的对象的化.需要自己销毁了.可以不用显示调用close.
---华软网友回复---
引用 6 楼 tt2com 的回复:
既然你不想频繁的开关操作为什么不选择一次读到内存中内?你的内存很小吗?开来不管非常不好,资源泄漏了。我搞不明白FAT over Nandflash是啥东西,不过应该不好出现多次开关操作就over的flash吧,那样也太垃圾了,


不是读文件而是写文件
FAT over Nandflash意思是基于nandflash的FAT文件系统,Nandflash存在读写寿命问题,而FAT文件系统经常改写文件分配表,又会增加对nandflash的读写次数,编码时需要注意
---华软网友回复---
引用 8 楼 yf882 的回复:
引用 6 楼 tt2com 的回复:
既然你不想频繁的开关操作为什么不选择一次读到内存中内?你的内存很小吗?开来不管非常不好,资源泄漏了。我搞不明白FAT over Nandflash是啥东西,不过应该不好出现多次开关操作就over的flash吧,那样也太垃圾了,


不是读文件而是写文件
FAT over Nandflash意思是基于nandflash的FAT文件系统,Nandflas……

恩学习下。楼主做嵌入式的?不过个人认为影响性能的是你的多次写操作,而非open和close操作。个人感觉你应该关注的是如何减少读写操作而不是开关操作。静等大N解释下吧
---华软网友回复---
频繁的open、close会影响性能
---华软网友回复---
没事频繁地打开和关闭文件肯定要占系统开销。
这要看你的实际情况来定。比方你在一个函数里面 CFile f;对象是局部的,你需要经常调用这个函数,这样在函数里打开和关闭就没什么大问题。但是要是循环中成千上万次的调用,那就要考虑CFile对象在类里声明个类成员了,或者函数间传递CFile*pf指针(千万不要传对象),就不要每次Open Close了。具体情况要自己判断。
---华软网友回复---
必须要关闭。
---华软网友回复---
文件打开就要关闭啊,否则你写入文件的数据都保存不上,频繁的打开关闭会造成时间的浪费。
---华软网友回复---
引用 9 楼 tt2com 的回复:
恩学习下。楼主做嵌入式的?不过个人认为影响性能的是你的多次写操作,而非open和close操作。个人感觉你应该关注的是如何减少读写操作而不是开关操作。静等大N解释下吧

引用 11 楼 gordon3000 的回复:
没事频繁地打开和关闭文件肯定要占系统开销。
这要看你的实际情况来定。比方你在一个函数里面 CFile f;对象是局部的,你需要经常调用这个函数,这样在函数里打开和关闭就没什么大问题。但是要是循环中成千上万次的调用,那就要考虑CFile对象在类里声明个类成员了,或者函数间传递CFile*pf指针(千万不要传对象),就不要每次Open Close了。具体情况要自己判断。


恩,是嵌入式。
open、close不会影响性能吗?还是说同写操作比起来影响不大?
不会“千上万次的调用”,否则要先考虑的就是flash读写了。
---华软网友回复---
up
open后的文件句柄不释放,直至程序结束,这个解决方法怎么样?
---华软网友回复---
1.永不close的话,有什么影响?不行,除非你这个文件别人都不操作
2.频繁open/close,有什么影响?对效率有影响
3.环境是FAT over Nandflash,文件的open/close会增加读写flash的次数吗?
是      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。