Я пытаюсь сделать файловый ввод-вывод через сетевой диск (вероятно, через WAN или VPN) максимально надежным для собственного приложения C ++ для Windows ...
Каковы возможные ошибки, с которыми мне нужно справиться?
Как я могу смоделировать эти ошибки при тестировании?
Как получить подробную информацию о конкретной ошибке? Например, если fopen()
терпит неудачу, errno
говорит мне все, что мне нужно знать, или мне нужно получить значение GetLastError()
?
Как надежно различить «доступ к сетевому диску полностью функционален, но файл не существует» и различные проблемы с сетью или сервером?
Одна особая ошибка, которую я заметил на своем рабочем столе (не относится к разрабатываемому приложению), заключается в том, что иногда первая попытка доступа к файлу на сетевом диске завершается неудачно, но, вероятно, приводит к переподключиться в фоновом режиме, потому что последующие соединения работают. Я не знаю, что вызывает это. Это пример типа ошибки, которую я хочу правильно обработать.
РЕДАКТИРОВАТЬ: Это для устаревшего распределенного приложения, которое использует файлы на общих сетевых ресурсах для связи между узлами. Некоторые узлы могут оставаться без присмотра, поэтому передача ошибки конечному пользователю может быть невозможной. Долгосрочная цель - перейти на более качественный протокол, но в краткосрочной перспективе я хотел бы сделать файловый ввод / вывод максимально надежным.