Sobes.tech
Senior
48

Файл жойылған болса да, дескриптор ашық болса, процесс қайда жазады? Мазмұнын көруге бола ма?

Сұралған компаниялар
ОТП БанкОТП Банк

AI-дан жауап

sobes.tech AI

Если файл удалён из файловой системы, но процесс всё ещё держит открытый дескриптор на этот файл, то процесс продолжит писать данные в inode этого файла. Файл физически не отображается в каталоге, но данные сохраняются на диске, пока дескриптор открыт.

Это связано с тем, что в Unix-подобных системах удаление файла (unlink) удаляет ссылку на файл из каталога, но сам файл удаляется только тогда, когда количество ссылок и открытых дескрипторов становится нулём.

Чтобы посмотреть содержимое такого "удалённого" файла, можно:

  • Найти дескриптор процесса, который держит файл открытым, например, через /proc/<pid>/fd/.
  • Перейти в каталог /proc/<pid>/fd/ и посмотреть символическую ссылку на дескриптор, например /proc/<pid>/fd/3.
  • Считать содержимое через этот дескриптор, например, cat /proc/<pid>/fd/3.

Таким образом, даже если файл удалён из каталога, его содержимое доступно через открытый дескриптор до закрытия файла процессом.