首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

FlushFileBuffers是否一定需要执行?解决思路

2012-03-02 
FlushFileBuffers是否一定需要执行? - C++ Builder / Windows SDK/API我现在有个程序频繁的往dbf文件写记

FlushFileBuffers是否一定需要执行? - C++ Builder / Windows SDK/API
我现在有个程序频繁的往dbf文件写记录(WriteFile),写完一条记录之后,是否一定需要执行FlushFileBuffers?

同步会有另为一个程序不断的读取这个文件。那么如果我不执行FlushFileBuffers,会否对读取记录造成影响?

比如读取到了半条记录之类的。

由于FlushFileBuffers的速度很慢,导致整个写dbf的速度很慢,所以想考虑吧FlushFileBuffers去掉。

谢谢大家。

[解决办法]
API:WriteFile的第4个参数,返回写到文件中的字节数。判断这个字节数和要写入的缓冲长度是否相等再结合WriteFile函数的返回值,如果成功的写到了文件中,可以不用每次调用FlushFileBuffers。
[解决办法]
会不会不是FlushFileBuffers的速度慢,而只是文件写硬盘的速度慢?看帮助FlushFileBuffers貌似只是强制写盘的。
[解决办法]
不用每次都用FlushFileBuffers,它占用系统资源。
[解决办法]
不执行FlushFileBuffers,不会对读取记录造成影响。

写文件有缓冲机制,这样可以提高读写速度,如果写完就Flush,相当于缓冲机制被取消了,当然变慢了。我想原程序这样写的目的应该是防止意外关机(如断电)造成的错误。

热点排行