Просто хотел опровергнуть некоторые из более абсолютных требований здесь:
Нет способа добавить данные в начало файла.
Неверно, если есть определенные ограничения.
Когда файл хранится на диске, перед началом файла нет доступных пустых байтов, поэтому вы не можете просто поместить туда данные.
Это может иметь место при обработке файлов на уровне абстракции как потоков байтов. Однако файловые системы чаще всего хранят файлы в виде последовательности блоков, а некоторые файловые системы предоставляют немного более свободный доступ на этом уровне.
Linux 4.1+ (XFS) и 4.2+ (XFS, ext4) позволяет вставлять дыры в файлы, используя fallocate
, с учетом определенных ограничений смещения / длины:
Обычно смещение и длина должны быть кратными размеру логического блока файловой системы, который зависит от типа и конфигурации файловой системы.
Примеры на сайтах StackExchange можно найти в веб-поиске «Fallocate Prepend to file».