Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание файла, имеющего заданный размер и заполненного нулями

28K
17 декабря 2008 года
Tirpitz
32 / / 05.05.2008
Как можно проще всего создать на диске файл заданного размера в байтах и заполненного нулями? Для использования функции write() необходимо иметь буфер такого же размера, как и размер файла, а использовать буфер мешьшего размера и указать количество повторений этого буфера - значит ограничивать размер файла числом, кратным размеру буфера. Записывать в цикле в файл один нулевой байт - несерьезно. Можно, конечно, использовать WinAPI, но хотелось сделать это средствами стандартных библиотечных функций.
38K
18 декабря 2008 года
Tooth
38 / / 07.10.2008
 
Код:
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);
        }
240
18 декабря 2008 года
aks
2.5K / / 14.07.2006
Цитата: Tirpitz
а использовать буфер мешьшего размера и указать количество повторений этого буфера - значит ограничивать размер файла числом, кратным размеру буфера.


Пиши сколько влазит повторений этого, а остаток забивай нужным количеством нулей. )

28K
18 декабря 2008 года
Tirpitz
32 / / 05.05.2008
O, thanks, chsize() работает!
240
18 декабря 2008 года
aks
2.5K / / 14.07.2006
Единственная проблема, что это не стандартные библиотечные функции, а POSIX. Тоесть как раз API ОС, что немного противоречит условию. )
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог