2 han7741 han7741 于 2015.07.06 20:31 提问

VC/C++怎样让打开着的txt文件 实时刷新 写入的数据信息
c c++ vc

怎样让打开着的txt文件 实时刷新 写入的数据信息,用c/VC/C++实现

6个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.06 21:42
已采纳

你用ReadDirectoryChange() API
获取文件改变事件,然后这个时候重新读取文件内容,然后刷新显示。
nodepad++类似处理。

caozhy
caozhy   Ds   Rxr 2015.07.06 20:47

如果你坚持使用文本文件,这个没办法实时,只能是不断打开文件,查询有没有新的数据,然后添加。

zuishikonghuan
zuishikonghuan   2015.07.06 22:22

你说的的打开着的是个什么意思呢,如果是被系统记事本打开着,估计不能实现,你应该自己createfile占用它,然后用writefile在文件末尾写入数据

91program
91program   Ds   Rxr 2015.07.07 07:42

如果是共享的读/写,如 UltraEdit 一样,则再次打开是没有问题的。
但如果是被独占,则无法再次打开,后续的读/写就不可能实现的。

如果没有被其它应用打开,只有自己的应用打开,实在的读/写肯定是没有问题的。但还是不建议频繁的打开/关闭文件,此处需要注意实现的技巧。

u011547347
u011547347   2015.07.07 13:26

在C中,当使用标准库stdio.h时需要刷新缓存区,在Windows上flush()可以将缓存立即写到文件中,但是这个在linux上不行
使用系统调用读写文件时不存在缓冲,数据是即时写入文件的

baidu_25226775
baidu_25226775   2015.07.07 14:44

使用 fflush() 函数,每写一次就执行一次。我之前都是这么做的

Csdn user default icon
上传中...
上传图片
插入图片