Короче говоря, как правильно обновить файл в C или C ++, который выполняет минимальное количество необходимых операций записи.
Более длинный вопрос:
Скажите, что мне нужно обновить файл, добавив информацию в его конец. Мне не нужно загружать весь файл в память, мне просто нужно добавить указатель конца до конца блока файловой системы (и / или зарезервировать другой). Какая будет правильная стандартная функция C ++ или C для этого.
Скажем, мне также нужно заменить байтовый массив этого файла байтовым массивом такой же длины. (например, изменить один символ ASCII на другой символ ASCII). Как я могу этого достичь.
Существует ли библиотека, которая делает то, что я имею в виду (dwim), т.е. если ей нужно вставить массив байтов a[]
длины l
в позиция p
, что он перезаписывает l
байтов после указателя, с a[]
затем он берет исходные байты по указателю p
пишет до конца файла, а затем просто добавляет последние 1 байт файла для учета новой длины.