У меня есть файл, в который я записываю данные, используя функции cstdio
, Я хочу убедиться, что файл был успешно записан в файл без каких-либо перерывов, поэтому я знаю, чего ожидать от файла, когда буду позже читать из него. Я стремлюсь сделать это, сначала записав обнуленные данные на 8 байтов в самое начало файла, записав файл как обычно, а затем в качестве последнего шага перемотав файл и переписав эти первые 8 байтов с помощью конкретная подпись для обозначения того, что файл был завершен и правильно сформирован.
Мой вопрос: как лучше всего редактировать эти первые 8 байтов?
С fopen()
Какой будет подходящий режим открытия (второй аргумент) для использования?
Это безопасно просто rewind()
в начале и использовать fwrite()
, или есть особая функция, особенная для акта перезаписи?
WhozCraig прав. С помощью wb+
совершенно нормально, а также rewind
является.
Вы также можете взглянуть на блокировку файлов, которая гарантирует, что:
Других решений пока нет …