读书人

linux下利用fwrite文件写入过程中突然

发布时间: 2012-03-15 11:50:38 作者: rapoo

linux下利用fwrite文件写入过程中突然断电的处理
在linux下利用fwrite对文件进行写入的过程中,突然断电。针对
这个时候,通常应该采取哪些措施,或者说如何针对这种情况,采取
相应的应对措施呢。linux有无相应的应对方法。
如果可以的话,由相关的文档,参考资料更好!
谢谢各位!

[解决办法]
没有什么不可预料的反应

fwirte 是带缓存写 写的时候断电 当然缓存里面的东西就写不进去了

自己的程序可以处理啊

比如你自定义一个log文件,在写的时候顺便也写点日志到那个log文件

断电写的log和正常写的log种有不同把

所以你程序可以检查那个log

发现不正常情况的时候

要从新写某些数据
[解决办法]
up用ups的
[解决办法]
这属于文件系统的责任吧.
你可以把它设置成无缓冲.
或则每次写完后fflush(),
int fsync(int fd);
int fdatasync(int fd);
强制把数据写会磁盘.等,不过这是要付出效率等代价地.
[解决办法]
fflush虽然可以让fwrite刷缓冲,但硬盘自己还有一级缓冲呢,应用层程序是无法控制的。
所以,ups是正道。
另外,考虑断电,那硬盘烧毁呢?CPU烧毁呢?

读书人网 >C++

热点推荐