Редактирование файла с помощью cstdio?

У меня есть файл, в который я записываю данные, используя функции cstdio, Я хочу убедиться, что файл был успешно записан в файл без каких-либо перерывов, поэтому я знаю, чего ожидать от файла, когда буду позже читать из него. Я стремлюсь сделать это, сначала записав обнуленные данные на 8 байтов в самое начало файла, записав файл как обычно, а затем в качестве последнего шага перемотав файл и переписав эти первые 8 байтов с помощью конкретная подпись для обозначения того, что файл был завершен и правильно сформирован.

Мой вопрос: как лучше всего редактировать эти первые 8 байтов?

С fopen()Какой будет подходящий режим открытия (второй аргумент) для использования?

Это безопасно просто rewind() в начале и использовать fwrite(), или есть особая функция, особенная для акта перезаписи?

1

Решение

WhozCraig прав. С помощью wb+ совершенно нормально, а также rewind является.

Вы также можете взглянуть на блокировку файлов, которая гарантирует, что:

  • никто не может читать / писать файл, пока вы держите эксклюзивную блокировку
  • никто не может записать файл, пока вы держите общую блокировку
1

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

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