首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

文件的原子操作解决思路

2012-02-16 
文件的原子操作对文件的每次操作,更新幅度较大,如同重写。一般情况下,重写时遭遇断电等意外,文件内容可能丢

文件的原子操作
对文件的每次操作,更新幅度较大,如同重写。
一般情况下,重写时遭遇断电等意外,文件内容可能丢失。
考虑到更新内容事小,文件可旧但不可丢失,采用这种方式:
重写一个临时文件,将临时文件代替旧文件。
力图实现文件重写的原子操作,可否?
替换文件操作,能做到原子化么?

[解决办法]
写日志,然后做操作,如果操作时掉电,则根据日志重放...

[解决办法]
好像没见过掉电也能100%保证文件完整性的软件
[解决办法]

探讨
写日志,然后做操作,如果操作时掉电,则根据日志重放...


[解决办法]
可以参考日志文件系统的方式。完成某个操作后,定时写检查点,断电时根据日志恢复到检查点。
很多数据库都是这样保证数据一致性的。
[解决办法]
1楼的方法挺好的。。。
[解决办法]
理论上说,替换文件也不能做到原子化,因为断电时刻是一个无穷小量,它可以发生在磁头写磁盘的任意时刻

除非你使用量子计算机,使用量子来保存数据,那么可以做到原子化
[解决办法]
如果是替换文件也行吧

热点排行