社区
C语言
帖子详情
为什么断电时fwrite函数写文件出错?
yangangs
2011-03-07 02:32:18
采用的是追加模式写文件,断电的时候每次都会在文件的末尾有8192个00,写文件的实现是4096个字节写一次,后来我在fwrite的地方都加上了日志打印,发现日志记录的每次写文件都写成功了,而且写入的长度大于文件实际长度,并且在文件末尾有8192的00,很奇怪,忘高人指点啊!
...全文
248
7
打赏
收藏
为什么断电时fwrite函数写文件出错?
采用的是追加模式写文件,断电的时候每次都会在文件的末尾有8192个00,写文件的实现是4096个字节写一次,后来我在fwrite的地方都加上了日志打印,发现日志记录的每次写文件都写成功了,而且写入的长度大于文件实际长度,并且在文件末尾有8192的00,很奇怪,忘高人指点啊!
复制链接
扫一扫
分享
转发到动态
举报
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谢谢
Linux 读
写
文件
时
,异常
断电
或程序异常中止导致
文件
出错
、损坏
在程序运行过程中突然
断电
,或者异常终止程序,就会出现配置
文件
内容
出错
(内容清空)或者
文件
直接损坏而无法打开的情况。
文件
损坏
时
,可能报出segmentation fault的错误,以致程序没法正常运行。 二、问题分析...
Linux
写
文件
断电
保存,linux
写
文件
操作,异常掉电后,
文件
损坏丢失(0kb)
今天调试程序,在做异常
断电
测试
时
,再开机发现
文件
是0 kb, 通过log查询,
文件
已经
写
入完成。不明白为何掉电之后
文件
就没了。 查到下面的博文解决了该问题。 通过 fflush->fsync->fclose解决该问题一、问题...
《C/C++学习指南》语法篇—笔记 (十五、
文件
操作)
标准C
函数
操作
文件
: fopen:打开一个
文件
fclose: 关闭
文件
fwrite
:
写
入数据 fread:读出数据 保存数据到
文件
1、打开
文件
FILE* fopen(const char* filename, const char* mode); filenam
linux
写
文件
操作,异常掉电后,
文件
损坏丢失(0kb)
今天调试程序,在做异常
断电
测试
时
,再开机发现
文件
是0 kb, 通过log查询,
文件
已经
写
入完成。不明白为何掉电之后
文件
就没了。 查到下面的博文解决了该问题。 通过 fflush->fsync->fclose解决该问题 一、...
linux下
文件
带缓冲与不带缓冲的理解
带缓冲与不带缓冲的区别和联系缓不缓冲的一些概念与磁盘交互读
写
文件
的流程不带缓冲与带缓冲的实现机制带缓冲与不带的差别标准IO库以write
函数
(系统调用)和
fwrite
函数
(c库
函数
)为例缓冲技术的作用和价值 ...
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章