Что происходит с дескриптором открытого файла в Linux, если указанный файл тем временем получает:
- Удалено → Дескриптор файла остается действительным?
- Удалено → Приводит ли это к EBADF, указывая неверный дескриптор файла?
- Заменяется новым файлом → Обрабатывает ли файл указатель на этот новый файл?
- Заменено жесткой ссылкой на новый файл → Движок моего файла "следует" этой ссылке?
- Заменен мягкой ссылкой на новый файл → Достиг ли теперь мой дескриптор файла этот файл мягкой ссылки?
Почему я задаю такие вопросы: я использую аппаратное обеспечение с горячей заменой (например, USB-устройства и т.д.). Может случиться так, что устройство (а также его /dev/file) будет подключено пользователем или другим Gremlin.
Какая лучшая практика борьбы с этим?