Изменение размера файла в C++
Заданную длину файла в байтах на диске устанавливает resize_file без побайтового копирования содержимого.
Сначала создадим короткий "scratch.tmp",
затем изменим его размер и выведем новую
длину через file_size:
#include <filesystem>
#include <fstream>
#include <iostream>
std::ofstream{"scratch.tmp"} << "x";
std::filesystem::path scratch{"scratch.tmp"};
std::filesystem::resize_file(scratch, 8);
std::cout << std::filesystem::file_size(scratch) << "\n";
Увеличение размера не заполняет середину осмысленными данными - меняется только заявленная длина на диске.
Создайте файл "pad.tmp" с одним символом,
задайте std::filesystem::path blob
для этого имени, установите длину 16
байт и выведите std::filesystem::file_size(blob).