Это то, что я обнаружил сегодня - я модифицировал файлы gcov в терминале. У меня было одно окно со старыми файлами gcov с 11 утра. В 11:15 я снова запустил программу и заново создал файлы gcov (перезаписав старые). Я посмотрел на них во втором окне терминала. Тем не менее, я обнаружил, что все еще могу просматривать файлы gcov 11 утра в первом окне!

Это из-за того, как работает файловая система OS X, что удаленные файлы все еще в некоторой степени доступны? Кажется, это связано с тем, как можно переименовывать или перемещать файлы, которые уже открыты, в отличие от Windows.

1 ответ1

2

Запись каталога указывает на индекс, индекс содержит метаинфо и указывает на данные файла. Вы можете удалить запись каталога (это уменьшает счетчик ссылок на inode) или закрыть открытый файл (также уменьшает счетчик ссылок на inode). Когда счетчик ссылок на иноды равен 0, тогда фактический файл удаляется.

Например, в файловых системах FAT "inode" и запись каталога являются одним и тем же объектом, поэтому удаление записи каталога также приводит к удалению файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .