Возможно ли, что приложение может потерять соединение ввода/вывода с файлом?

У меня есть приложение C. Который создает соединение с файлом при запуске и постоянно работает в течение многих дней.

Я только подключаюсь один раз. и не пересоздать его в коде. Только проверка, если

if(NULL == file)

Может ли случиться, что мое приложение потеряет соединение ввода-вывода этого обработчика файлов?

если да. Есть ли способ, как я могу создать тестовый пример?

Ответ 1

Да, это возможно. Например, если файл находится на другом компьютере или на съемном носителе. В любом случае вы можете физически отключить/отключить устройство, а последующие операции с дескриптором не удастся.

Чтобы имитировать это автоматически, вам нужно взломать его на уровне драйвера.

Ответ 2

Вы можете потерять соединение с файлом, но он не установит вашу переменную файла в NULL, симптом будет ошибкой ввода-вывода. Чтение или запись не удастся. (Для потоков С++ байтбит будет установлен вместо отказа, установленного для ошибки формата;)