|
Нет конечно, иначе бы ты не смог открыть 10гб файл =) fopen только цепляется к конкретном...
|
Posted by: Dr.Golova on May 27, 2003 at 01:08:55
Posters Details: [212.188.101.254], X-Forwarded 4: [] [Mozilla/4.0 (compatible; MSIE 5.0; Windows XP) Opera 6.03 [en]]
In Reply to: Разъясните подробности... Posted by: Psychic on May 27, 2003 at 00:15:52
# Если я открываю файл обычными методами аля fopen происходит ли его загрузка в память?
Нет конечно, иначе бы ты не смог открыть 10гб файл =) fopen только цепляется к конкретному стриму, а читает в память только то что ты попросишь (ну естественно там есть некий кэш для упреждающего чтения, обычно это не больше чем 4кб).
# Вопрос в том, что мне в лабе нужно использовать вирутальную память один из вариантов - мапирование файлов. Так вот вопрос, если дописываю в огромные лог файлы записи имеет ли смысл их мапировать в вирутальную память или нет?
Если дописываешь, то не имеет, а вот если ищешь по нему всему, то имеет. Мапирование это естесно понятие весьма виртуальное, там тоже не весь файл грузится в память, а только его часть (окно), но удобство какраз в том что не надо самому двигать это окно - об этом заботится система, а файл читается просто как массив.
# И вообще, расскажите реальные примеры мапирования файлов, если можно с исходниками. Заранее спасибо.
Эээ, а какие тут могут быть примеры? Это ж три функции всего: CreateFile() + CrateFileMapping() + MapViewOfFile() и все - вот тебе готовый мап. Но а если речь идет об мапе в свопе (типа например для разделения информации между несколькими процессами), то это другой разговор, хотя делается все точно также, тока вместо хэндля из CreateFile() суешь дальше -1
Follow Ups:
|
|