覆盖文件实际上会覆盖它吗? [关闭]
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中的内容?