首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >硬盘工作原理

硬盘工作原理
EN

Stack Overflow用户
提问于 2016-04-05 03:52:49
回答 1查看 160关注 0票数 0

我有10字节的数据要写入一个文件,在我的程序将9字节和7位写入硬盘之后,如果断电,在电到达后我能从这个文件读取多少字节?9字节还是10字节?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-03 21:19:52

你什么都不能说。这里有太多的抽象层。您的程序通常是缓冲区、OS缓冲区、芯片组缓冲区、驱动器本身的缓冲区,并且在某个时候数据将被写入。

当您要求通过类似于fsync的东西对数据进行硬同步时,您所得到的只是确认至少您的数据已经写入,这并不能保证没有其他任何东西。

这需要非零的时间,该数据流通过所有这些层,并在物理上结束在您的磁盘,SSD或其他。如果在这个过程中的某个时候断电了,而且你还没有收到书面确认,那么安全的假设是你不知道写了多少。您必须检查之前写入的任何文件,并查看存在哪些数据。

当您的系统重新启动时,它可能必须从日志中恢复,并且任何未提交的更改都将被回滚。在您的示例中,实际写入的字节数是

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36416829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档