Вопрос по количеству вызовов MapViewOfFile
MapViewOfFile не вызывая затем UnmapViewOfFile.
Например есть 100 файлов с данными по 60 МБ нужно на все из них получить указатели и держать их одновременно открытыми.
Есть ли ограничения по этому механизму? Есть подозрение что связано это с объектами ядра, а их число ограничено.
Цитата:
Originally posted by KhArt
Сколько раз можно вызывать
MapViewOfFile не вызывая затем UnmapViewOfFile.
Например есть 100 файлов с данными по 60 МБ нужно на все из них получить указатели и держать их одновременно открытыми.
Есть ли ограничения по этому механизму? Есть подозрение что связано это с объектами ядра, а их число ограничено.
Сколько раз можно вызывать
MapViewOfFile не вызывая затем UnmapViewOfFile.
Например есть 100 файлов с данными по 60 МБ нужно на все из них получить указатели и держать их одновременно открытыми.
Есть ли ограничения по этому механизму? Есть подозрение что связано это с объектами ядра, а их число ограничено.
Здесь у тебя будет скорее другая проблема нежели нехватка хэндлов. А именно нехватка твоего 2-х гигабайтового адресного пространства для открытия всех 100 файлов по 60 mb так как общий размер сводного адресного пространства для них уже нужен 60*100 = 6000 mb а у тебя имеется в запасе всего 2 гига. Конечно в 64 битной версии винды это прокатит.
Еще вопрос:
Выполняем
fFile = CreateFile...
fFileMap = CreateFileMapping...
pVoid = MapViewOfFile...
CloseHandle(fFileMap);
CloseHandle(fFile);
Возможна ли ситуация что pVoid после этого будет указывать на неинициализированную область памяти?
В принципе это работает...
Ну и в конец UnmapViewOfFile(pVoid);
Цитата:
Originally posted by KhArt
Ок, спасибо учту!
Еще вопрос:
Выполняем
fFile = CreateFile...
fFileMap = CreateFileMapping...
pVoid = MapViewOfFile...
CloseHandle(fFileMap);
CloseHandle(fFile);
Возможна ли ситуация что pVoid после этого будет указывать на неинициализированную область памяти?
В принципе это работает...
Ну и в конец UnmapViewOfFile(pVoid);
Ок, спасибо учту!
Еще вопрос:
Выполняем
fFile = CreateFile...
fFileMap = CreateFileMapping...
pVoid = MapViewOfFile...
CloseHandle(fFileMap);
CloseHandle(fFile);
Возможна ли ситуация что pVoid после этого будет указывать на неинициализированную область памяти?
В принципе это работает...
Ну и в конец UnmapViewOfFile(pVoid);
Наврядли. В мсдн регламентировано возвращяемое значение функции MapViewOfFile,оно либо валидный адрес либо NULL