Возможно ли, что приложение может потерять соединение ввода/вывода с файлом?
У меня есть приложение C. Который создает соединение с файлом при запуске и постоянно работает в течение многих дней.
Я только подключаюсь один раз. и не пересоздать его в коде.
Только проверка, если
if(NULL == file)
Может ли случиться, что мое приложение потеряет соединение ввода-вывода этого обработчика файлов?
если да. Есть ли способ, как я могу создать тестовый пример?
Ответы
Ответ 1
Да, это возможно. Например, если файл находится на другом компьютере или на съемном носителе. В любом случае вы можете физически отключить/отключить устройство, а последующие операции с дескриптором не удастся.
Чтобы имитировать это автоматически, вам нужно взломать его на уровне драйвера.
Ответ 2
Вы можете потерять соединение с файлом, но он не установит вашу переменную файла в NULL, симптом будет ошибкой ввода-вывода. Чтение или запись не удастся. (Для потоков С++ байтбит будет установлен вместо отказа, установленного для ошибки формата;)