为什么断电时fwrite函数写文件出错?

yangangs 2011-03-07 02:32:18
采用的是追加模式写文件,断电的时候每次都会在文件的末尾有8192个00,写文件的实现是4096个字节写一次,后来我在fwrite的地方都加上了日志打印,发现日志记录的每次写文件都写成功了,而且写入的长度大于文件实际长度,并且在文件末尾有8192的00,很奇怪,忘高人指点啊!
...全文
248 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-03-07
  • 打赏
  • 举报
回复
断电算轻的,没被雷击算幸运。
yangangs 2011-03-07
  • 打赏
  • 举报
回复
已经可以确定fflush执行成功了,我们的另一个程序用的是预分配文件大小的方式写文件就不会出现此类问题。
qiang81020 2011-03-07
  • 打赏
  • 举报
回复
楼上的正解...软件不是万能的
taodm 2011-03-07
  • 打赏
  • 举报
回复
ups是王道,别在软件上折腾硬件问题。
「已注销」 2011-03-07
  • 打赏
  • 举报
回复
每次写入以后都fflush一下行不?
yangangs 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qq120848369 的回复:]
Fclose谢谢
[/Quote]
是持续的写文件,断电是不可预知的,怎么可能fclose呢?
qq120848369 2011-03-07
  • 打赏
  • 举报
回复
Fclose谢谢

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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