关于文件系统如何工作的简单问题。
如果我在100MB .txt文件中更改一行,文件系统是否会无效并重写整个100MB的文件?
如果我添加一行怎么办? (和文件大小更改)
感谢。
答案 0 :(得分:0)
文件系统没有写入文件中间的概念 - 它只知道如何追加到最后。在C中,如果要将数据写入文件的中间,则需要manually move forward all the data past the point at which you want to write,然后将新字符写入新创建的空间。
在执行此操作时,文件系统可能必须重新排列文件的某些部分,例如,如果超过存储该文件的磁盘块的大小。因此,所有在您将文本添加到中间之前和之后的所有内容都必须重新编写,但其中重写它取决于文件系统和安排磁盘上的文件。
TL; DR取决于文件系统以及文件存储在磁盘上的方式。