Що відбувається з файлами, які видаляються, поки у них відкрита ручка файлу?
Мені це було цікаво ще з тих пір, як я зрозумів, що можу видалити відеофайл під час його відтворення в MPlayer, і він все ще буде відтворюватися до кінця. Звідки вона витягує дані? Це все ще йде з жорсткого диска? Чи було воно скопійовано в оперативну пам’ять, коли я видалив файл?
Якщо він все ще знаходиться на жорсткому диску, що станеться, якщо я заповнюю файлову систему, поки програма працює з читанням, що є по суті нерозподіленим простором? Якщо він буферизований в оперативній пам'яті, що станеться, якщо я промиваю буфери?
Що станеться, якщо файл знаходився на спільній доступності NFS - чи зберігається він на сервері? (Хіба це не ризик для безпеки - DoS через тони відкритих віддалених файлів?)
Ведення lsof -n |grep '(deleted)'
іноді дає цікаві результати; якщо я оновлюю пакети, які замінюють спільні файли бібліотек, то запущені програми, які використовували ці бібліотеки, все одно зможуть використовувати їх так, ніби нічого не змінилося.
Питання про бонус: Чи є в цій ситуації спосіб повернути дані від мертвих?