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