覆盖文件实际上会覆盖它吗? [关闭]

Posted

技术标签:

【中文标题】覆盖文件实际上会覆盖它吗? [关闭]【英文标题】:Does overwriting a file actually overwrite it? [closed] 【发布时间】:2019-02-20 14:20:34 【问题描述】:

当我打开一个现有文件并覆盖它的数据时(假设我在 Windows 上使用 NTFS 驱动器),我可以假设新数据将覆盖磁盘上原始数据的位置吗?

【问题讨论】:

这完全取决于操作系统和/或文件系统。 C 对此没有发言权。 您是在 Linux、Windows 还是 ios 中运行代码? 您在寻找什么级别的破坏?在fopen() 调用之后,您将无法通过文件名访问以前的数据,但是(尤其是日志文件系统或固态磁盘驱动器)取证专家很有可能找到以前的痕迹磁盘上的数据仍然存在。 【参考方案1】:

C 在这件事上绝对无话可说

底层环境是通过覆盖来破坏当前数据,还是写入新位置并破坏旧数据,或者以某种方式保留原始文件的副本,这完全取决于环境本身。

为了让那个得到智能的回答,您可能应该问另一个问题,详细说明您的操作系统和 C 实现。

【讨论】:

甚至操作系统也可能没有发言权;当覆盖磁盘或 ssd 上的相同逻辑块时,控制器固件对是否进入相同的物理位置拥有最终决定权。 即使覆盖数据也可能不会完全破坏它,文件粉碎机会多次覆盖以删除幽灵数据。

以上是关于覆盖文件实际上会覆盖它吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

路由应用程序覆盖文件[关闭]

appsettings文件属性是否覆盖了app.config中的内容?

使用 kml 文件时,Google 地图缩放被覆盖

使用 Scp 时防止覆盖文件 [关闭]

为啥 StEPLIB 总是覆盖 JCL 中的 JOBLIB? [关闭]

在覆盖 JUnit 中排除文件夹 [关闭]