WriteFile函数如何与磁盘上的另一个数据交互



I使用WriteFile函数在磁盘上写入扇区。WriteFile函数如何与驱动器或磁盘上的其他数据交互?如何在不意外删除另一个文件的情况下写入文件?操作系统是否可能意外删除我的文件?

当您直接写入磁盘时,您完全绕过了文件系统。除非重新实现读取和尊重文件系统所需的功能,否则可能会破坏磁盘。您可能不仅会覆盖其他文件,而且很可能会覆盖元数据,即描述目录和文件的结构和位置、属性等的信息。

如果磁盘已经包含一个正常工作的文件系统,并且您不想干扰它,那么我几乎无法想象直接写入磁盘的情况。如果你想把文件写到磁盘上,就这么做吧。我怀疑你在某个地方的推理中犯了一个错误,导致你认为你应该直接写入磁盘。

您真的在磁盘上写入扇区,而不是写入磁盘件吗?一些背景信息会很好,因为如果你真的通过操作系统向原始磁盘表面写入,而不是向磁盘上的文件写入,使用更高级别的函数,如fopen()、fwrite(),甚至更高级别,那么你这样做是有充分理由的。我们可以询问一下原因是什么吗?

如果你在写磁盘扇区时不考虑磁盘的文件系统,那么一切都是徒劳的。假设操作系统允许这样做,就没有什么可以保护你不覆盖关键的磁盘数据或操作系统不覆盖你的文件。

我这样做是为了访问嵌入式系统上的编号扇区,该系统与"外部世界"(PC)的唯一联系是一个自定义的被黑客入侵的USB大容量存储接口。即使在那时,每次我必须这样做时,我都会出冷汗——如果我的代码不小心写入了电脑的硬盘,那可能就告别了硬盘上的操作系统安装和所有写入其中的文件

相关内容

最新更新