char path="c:\\temp\\123.bin";
long size=1000000;
int handle=open(path,O_CREAT|O_RDWR|O_BINARY);
if(handle!=-1)
{
chsize(handle,size);
close(handle);
}
Создание файла, имеющего заданный размер и заполненного нулями
Как можно проще всего создать на диске файл заданного размера в байтах и заполненного нулями? Для использования функции write() необходимо иметь буфер такого же размера, как и размер файла, а использовать буфер мешьшего размера и указать количество повторений этого буфера - значит ограничивать размер файла числом, кратным размеру буфера. Записывать в цикле в файл один нулевой байт - несерьезно. Можно, конечно, использовать WinAPI, но хотелось сделать это средствами стандартных библиотечных функций.
Код:
Цитата: Tirpitz
а использовать буфер мешьшего размера и указать количество повторений этого буфера - значит ограничивать размер файла числом, кратным размеру буфера.
Пиши сколько влазит повторений этого, а остаток забивай нужным количеством нулей. )
O, thanks, chsize() работает!
Единственная проблема, что это не стандартные библиотечные функции, а POSIX. Тоесть как раз API ОС, что немного противоречит условию. )