把文件删掉不是真的删掉

以前Windows误删了文件,能用DiskGenius恢复,因为只是在磁盘那删了索引,实际的内容要等新的数据写入才会删除。这也合理,磁盘读写是有寿命的,普通的删除没必要再写一次去覆盖数据。

最近在macOS上写测试代码,其中有个测试是模拟用户清理空间行为,把视频文件删掉后,能否重新下载下来。测试的时候发现,文件在磁盘删掉后,也确认从内存删掉后,竟然没有再次下载数据就读到。调试了很久之后发现,数据是从磁盘中读出来的,但我明明已经删了文件了。(为了模仿用户行为,是直接调rm删除的)后来才了解到,哪怕磁盘中文件关掉了,但只要句柄没关,还是能从句柄那读到数据的

句柄只要hold住,别的进程也不能写这个文件的数据。所以句柄,一定要记得close。

猜你喜欢

转载自blog.csdn.net/ZhaoBuDaoFangXia/article/details/92799480