Выделение места под файл нужного размера.
От: MZU  
Дата: 10.10.02 23:43
Оценка:
Хочется в реальном времени записывать на диск поток данных, идущих с карточки. Поток около 6мб/сек, причём неравномерный по времени.
Для этого драйвер карточки кидает сообщения в кольцевой буффер и я их оттуда пишу на диск. Проблема состоит в том, что большое время уходит на запись файла на диск (проверено профайлером). Под МАК ОС, например, можно заранее выделить память нужного объёма под файл. Поделитесь, кто знает, как это сделать под Windows.
Re: Выделение места под файл нужного размера.
От: IT Россия linq2db.com
Дата: 11.10.02 00:10
Оценка:
Здравствуйте MZU, Вы писали:

MZU>Хочется в реальном времени записывать на диск поток данных, идущих с карточки. Поток около 6мб/сек, причём неравномерный по времени.


void SetFileLength(HANDLE hFile,DWORD dwNewLen)
{
    ::SetFilePointer(hFile,dwNewLen,NULL,FILE_BEGIN);
    ::SetEndOfFile(hFile);
}


Все проверки опущены. Если запись идёт интенсивно, то лучше увеличивать файл сразу на несколько мег.
Если нам не помогут, то мы тоже никого не пощадим.
Re: Выделение места под файл нужного размера.
От: old Dutchman Беларусь http://blogs.rsdn.org/ikemefula
Дата: 11.10.02 06:59
Оценка:
Здравствуйте MZU, Вы писали:

MZU>Хочется в реальном времени записывать на диск поток данных, идущих с карточки. Поток около 6мб/сек, причём неравномерный по времени.

MZU>Для этого драйвер карточки кидает сообщения в кольцевой буффер и я их оттуда пишу на диск. Проблема состоит в том, что большое время уходит на запись файла на диск (проверено профайлером). Под МАК ОС, например, можно заранее выделить память нужного объёма под файл. Поделитесь, кто знает, как это сделать под Windows.

Надо юзать FileMapping.

Начинай искать от CreateFileMapping
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.