- 主题:请教一个ofstream的flush问题
linux的话,试试fsync或sync,windows好像是_commit?不太确定
【 在 fishingriver (fishingriver) 的大作中提到: 】
: 我发现ofstream写文本时,即使加上flush,也不会立刻把数据写到文本文件里
: 文件close都执行完一段时间了,数据才会写完。
: 如果我想close返回时就写完,应该怎么做呢?
: ...................
--
FROM 222.128.5.*
你close之后就可以了,即使有os缓存也不影响对方读
【 在 fishingriver (fishingriver) 的大作中提到: 】
: 谢谢群主,谢谢大家,问题还没解决,请再支支招。
: 我现在的问题是这样的:
: 我的程序里会产生数据,然后把数据写到硬盘上,然后我通知另一个人的程序,把数据读走。
: ...................
--
FROM 222.128.5.*
对,close之后上传就行了
【 在 fishingriver (fishingriver) 的大作中提到: 】
: 我的问题是对方并不在本地开打和读写文件,他会用把我写好的文件传到服务器上
: 这种情况下,是不是只要我close了,也不影响他上传文件?操作系统底层会自己处理好?
--
FROM 222.128.5.*
是的
close后应该能看到,没看到的话刷新一下试试
【 在 fishingriver (fishingriver) 的大作中提到: 】
: 多谢多谢!
: (1)请问是不是这样的:他上传我产生的数据,也得先把数据弄到缓存里才能上传,而我写的数据已经在缓存里了,这个缓存对于我的程序和他的程序都是透明可以访问的,所以我一close,就可以通知他,他也可以立刻就上传,这样对于他更省时间,因为他不用把我的数据弄到缓存
: (2)我有的时候需要写好几个文件,然后再通知他。我发现有时我写完最后一个文件都close了,但之前还有几个文件,名字都没出现在硬盘上。得过一阵子文件才会开始出现在硬盘上。这种情况我也写完最后一个文件并且close之后(这时还有几个文件没出现在硬盘上),就可以通
: ...................
--
FROM 222.128.5.*