加急求助:正在执行文件写入操作时,拷贝文件,导致垃圾数据,什么原因

yleek 2013-07-23 10:55:34
情况是这样的:服务器上有一个守护进程,定时的收集系统信息,然后写入日志文件。有时候为了方便查看日志,我要把日志文件拷贝到本地,在本地打开日志文件,会发现有时候日志文件的最后会多出一些垃圾数据,举个例子,比如说要往日志文件中计入0到9十个数字,正常的日志应该只包含0到9,如图


出现问题的时候如下图,黄色的部分就是垃圾数据,与正常数据的某一部分重复:


问题我大概定位了一下,文件被写入时执行复制操作可以复现这个问题,可能跟文件输出缓存有关。
具体原因和细节我还不知道怎么回事,以及如何避免这种情况的发生,请大虾指教。

不知我说没说明白,有些地方不好说,希望有兴趣的能聊聊,邮箱yleek at 126
...全文
189 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yleek 2014-03-22
  • 打赏
  • 举报
回复
已经定位,如果一个文件正被写入,从xp系统远程拷贝,会出现问题
yleek 2013-07-25
  • 打赏
  • 举报
回复
引用 1 楼 ri_aje 的回复:
连点儿代码都没有,别人怎么帮你啊。 你说 "文件被写入时执行复制操作可以复现这个问题",文件具体怎么复制的,ctrl-c + ctrl-v,还是通过程序复制的?后者的话,代码是啥。
全是在操作系统上直接执行的动作,只有写文件的代码,ctrl-c复制。
ri_aje 2013-07-23
  • 打赏
  • 举报
回复
连点儿代码都没有,别人怎么帮你啊。 你说 "文件被写入时执行复制操作可以复现这个问题",文件具体怎么复制的,ctrl-c + ctrl-v,还是通过程序复制的?后者的话,代码是啥。

64,687

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧