Существует множество способов сделать это:
1. Только C / C ++
Вы можете переместить указатель файла (используя fseek()
) на нужный размер и написать что угодно. Это позволит установить размер файла в месте расположения указателя файла.
Однако этот подход позволяет только увеличить размер файла. Это не позволяет вам сжать его.
2. (Windows)
Вы можете создать файл, используя CreateFile()
, затем установить местоположение указателя файла и использовать SetEndOfFile()
, чтобы установить фактический размер.
Этот метод в Windows также можно использовать для уменьшения размера файла.
3. (Linux)
Я не уверен, что здесь, но, вероятно, есть кое-что в posix, которое сделает это, кроме fseek
+ fwrite
.