sdc7 发表于 2011-6-26 08:20:06

关于同时读写同一文件的问题

FileSetPos 帮助中看到
使用 FileSetPos() 将同一文件的同时读写成为可能. 当您在同时读写同一文件时, 请在每次读写操作后调用 FileFlush() 将缓冲器数据写入磁盘.
具体这么实现?

pengmo 发表于 2011-6-26 21:23:42

本帖最后由 pengmo 于 2011-6-26 21:25 编辑

个人觉得,文件同时读写是很难有完美解决方法的。
目前绝大多是都是把文件属性设为共享模式打开,每次写操作或读操作后,立刻刷新文件缓冲池。
以模仿对同一文件的同时读写操作,但是达不到真正意义上的同时读写,只不过这种文件操作速度很快,给人的感觉视乎是同时在读写。
请想一想,计算机的指令都是顺序执行的,要么读要么写怎可能同时进行呢。
为了模拟这种“同时”可以用内存映射或文件共享的方式进行操作,就应该能够打到楼主的要求。
文件操作时可以设置成shareDenyNone模式,启动共享。
这样你在这里操作TEXT.txt同时,其他程序也可以操作TEXT.txt。

补充一点,在执行FileFlush函数的时候是有时间开销的。
页: [1]
查看完整版本: 关于同时读写同一文件的问题