这是我今天发现的一个很棒的事情 - 我正在终端中修改 gcov 文件。我打开了一个窗口,里面有上午 11 点的旧 gcov 文件。11:15,我再次运行我的程序,并重新创建了 gcov 文件(覆盖了旧文件)。我在第二个终端窗口中查看了它们。但是,我发现我仍然可以在第一个窗口中查看上午 11 点的 gcov 文件!
这是因为 OS X 文件系统的工作方式导致已删除的文件仍然可以访问吗?这似乎与重命名或移动已打开文件的方式有关,而 Windows 则不同。
答案1
目录条目指向一个 inode,inode 包含元信息并指向文件数据。您可以删除目录条目(这会减少 inode 的引用计数),或关闭打开的文件(也会减少 inode 的引用计数)。当 inode 引用计数为 0 时,然后实际文件已被删除。
例如在 FAT 文件系统上,“inode”和目录条目是同一实体 - 因此删除目录条目也会删除文件。