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

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

【问题讨论】:

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

标签: windows file file-io filesystems hard-drive


【解决方案1】:

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

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

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

【讨论】:

  • 甚至操作系统也可能没有发言权;当覆盖磁盘或 ssd 上的相同逻辑块时,控制器固件对是否进入相同的物理位置拥有最终决定权。
  • 即使覆盖数据也可能不会完全破坏它,文件粉碎机会多次覆盖以删除幽灵数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
  • 2020-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多