如果操作系统在进行文件I/O操作的过程中发生了断电,会发生什么?

2024-09-30 06:29:15 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,这个问题实际上是我上一个问题的后续问题:What would happen if I abruptly close my script while it's still doing file I/O operations?

因此,无论何时强制脚本/程序退出,都不可能看到写入文件的不完整行,因为操作系统将执行其工作。但是如果出现电源故障,操作系统只是在将一行(如“这是一个测试”(甚至更大的字符串)附加到文件中,我是否得到了一个不完整的行附加或没有附加或更糟的内容丢失?我真的很好奇,这种情况肯定会发生在服务器端。有人能帮我吗?


Tags: 文件closeifmyscriptitwhatfile
2条回答

规则1。没有魔法。没有保证。没有保证。电源故障意味着电路通过超出其设计公差的状态。任何事情都有可能发生。没有保证。在

what if there's a power failure, and the OS is just in the middle of appending ... into a file, do I get an incomplete line appended

可能吧。没有魔法。I/O可以包括两个物理块。一个是书面的,一个是不成文的。在

or nothing appended

可能吧。没有魔法。I/O缓冲区可能尚未同步到设备。在

or even worse, previous content lost?

可能吧。没有魔法。在断电期间,写入设备的块可能会严重损坏设备上的位。在

I'm really curious to know, and this kind of situation would definitely happen on the server side.

“肯定”?在像停电这样无法控制的事件中没有什么是确定的。任何事情都有可能发生。在

有一个非常小的可能性,随机拼凑的位元可能是林肯葛底斯堡演说的文本,而这就是设备上显示的内容。在

它依赖于文件系统(及其选项)、硬件(缓存/缓冲区、媒体等)、应用程序行为和许多其他花絮。在

您可以lose data,甚至可以安全地编写数据。你可以破坏整个分区。你可以在档案上找到垃圾。你可以写一行半写,一半写满垃圾之类的。如果因素组合得当,你几乎可以得到你想象中的任何结果,混合内容的文件,被删除的旧文件重新出现,狗和猫生活在一起。。。集体歇斯底里!在

用一个合适的(日记?是否有版本?)FS和健全的硬件,你确实降低了混乱的可能性。在

相关问题 更多 >

    热门问题