Моя программа, которая записывает на сетевой диск через много часов, не работает, как восстановить с помощью ofstream?

Моя программа не может продолжать запись в файл через несколько часов и хотела бы узнать, смогу ли я обнаружить этот файл и, возможно, восстановить файл или просто запустить новый. Должен ли я просто проверить, является ли fail () истиной, и если да, восстановить файл?

0

Решение

Вы не можете получить конкретные коды ошибок из std :: ofstream, только независимо от того, была ли операция выполнена успешно или нет, поэтому, если вам нужно найти конкретный код ошибки (вероятно), вам может потребоваться обратиться к интерфейсам, специфичным для платформы.

Однако, что вы можете или должны сделать, это проверить возвращаемые значения от оператора<<(), std :: ofstream :: write () и std :: ofstream :: flush (), например, вот так:

std::ofstream of("...");
if (! (of << data))
{
retryOpenfile();
return;
}

Если операция записи не удалась, вы можете повторить попытку, чтобы открыть файл и продолжить, если это возможно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]