社区
其它技术问题
帖子详情
文件的原子操作
hyq1986
2010-02-26 03:32:23
对文件的每次操作,更新幅度较大,如同重写。
一般情况下,重写时遭遇断电等意外,文件内容可能丢失。
考虑到更新内容事小,文件可旧但不可丢失,采用这种方式:
重写一个临时文件,将临时文件代替旧文件。
力图实现文件重写的原子操作,可否?
替换文件操作,能做到原子化么?
...全文
129
10
打赏
收藏
文件的原子操作
对文件的每次操作,更新幅度较大,如同重写。 一般情况下,重写时遭遇断电等意外,文件内容可能丢失。 考虑到更新内容事小,文件可旧但不可丢失,采用这种方式: 重写一个临时文件,将临时文件代替旧文件。 力图实现文件重写的原子操作,可否? 替换文件操作,能做到原子化么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hyq1986
2010-02-26
打赏
举报
回复
磁头的事,自有文件系统的日志管理。
zbing0203
2010-02-26
打赏
举报
回复
如果是替换文件也行吧
cphj
2010-02-26
打赏
举报
回复
理论上说,替换文件也不能做到原子化,因为断电时刻是一个无穷小量,它可以发生在磁头写磁盘的任意时刻
除非你使用量子计算机,使用量子来保存数据,那么可以做到原子化
hyq1986
2010-02-26
打赏
举报
回复
我不要求保存100%正确的,我是要让之前的东西别丢了。
stardust20
2010-02-26
打赏
举报
回复
1楼的方法挺好的。。。
hyq1986
2010-02-26
打赏
举报
回复
日志太复杂了~~~~
cattycat
2010-02-26
打赏
举报
回复
可以参考日志文件系统的方式。完成某个操作后,定时写检查点,断电时根据日志恢复到检查点。
很多数据库都是这样保证数据一致性的。
赵4老师
2010-02-26
打赏
举报
回复
引用 1 楼 mlee79 的回复:
写日志,然后做操作,如果操作时掉电,则根据日志重放...
正解!
不过这个世界上没有绝对的原子操作。
hai040
2010-02-26
打赏
举报
回复
好像没见过掉电也能100%保证文件完整性的软件
mLee79
2010-02-26
打赏
举报
回复
写日志,然后做操作,如果操作时掉电,则根据日志重放...
Redis实战视频课程
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是...
python原子性_python
文件
原子写入
文件
原子写入你的代码以写的方式打开了一个
文件
,执行写入操作,但在写入过程中,发生了异常,导致程序崩溃,这个时候,
文件
里已经有了一部分你写入的数据,但是不完整,这往往是一个不被接受的结果。
文件
原子写入...
什么是
原子操作
原子操作
就是: 不可中断的一个或者一系列操作, 也就是不会被线程调度机制打断的操作, 运行期间不会有任何的上下文切换(context switch). 二. 为什么关注
原子操作
? 1. 如果确定某个操作是原子的, 就不用为了去保护这...
Linux--
原子操作
(介绍及其操作函数集)
Linux--
原子操作
1、
原子操作
1.1、概念1.2、事例1.3、
原子操作
结构体介绍1.4、
原子操作
的使用1.4.1、定义1.4.2、初始化1.5、原子整形操作 API 函数1.5.1、事例1.6、原子位操作 API 函数 1、
原子操作
1.1、概念 原子...
其它技术问题
3,881
社区成员
9,054
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章