Я реализую добавочный файл журнала для процесса сервера.Он записывает некоторое количество операций в журнал, а затем в различных точках записывает запись «контрольной точки».
В настоящее время у меня есть указатель FILE
, открытый в добавляемом режиме для файла, для фактической записиfile.
То, что я хотел бы сделать, это в различных точках «сбросить» переднюю часть журнала с записи на диске до точки данной контрольной точки.Я могу найти соответствующие смещения байтов, которые мне нужно изменить.
Мой вопрос: есть ли изящный способ сделать это, аналогично truncate
, но для передней части файла?Я могу воспользоваться возможностью записать то, что я хочу сохранить во временный файл, а затем поменять их местами, но если есть простая операция, которая не обязательно включает процесс повторного сканирования и записи в отдельный файл, я бы с удовольствиемзнать.
Спасибо за помощь!