URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7613
[ Назад ]

Исходное сообщение
"Закачка файла в оперативу"

Отправлено iliaparen , 29-Сен-08 14:54 
Здравствуйте.
Задача состоит в работе с текстовым файлом среднего размера (2-10мб).
Так как работать надо быстро, доступ к файлу через диск отметается.
Слышал, что можно весь файл закачать в оперативу и уже там работать с ним как с массивом и это намного быстрее.
Подскажите пожалуйста, как это можно сделать.


Содержание

Сообщения в этом обсуждении
"отображение..."
Отправлено Andrey Mitrofanov , 29-Сен-08 15:13 
>Слышал, что можно весь файл закачать в оперативу и уже там работать
>с ним как с массивом и это намного быстрее.

Видимо, до Вас доходили слухи про mmap() - http://www.opennet.me/man.shtml?topic=mmap


"Закачка файла в оперативу"
Отправлено SeLarin , 29-Сен-08 16:22 
А что мещает выделить память, скопировать туда содержимое файла, работать с ним в памяти, а после завершения работы скопировать содержимое памяти обратно в файл?

"Закачка файла в оперативу"
Отправлено iliaparen , 29-Сен-08 17:07 
>А что мещает выделить память, скопировать туда содержимое файла, работать с ним
>в памяти, а после завершения работы скопировать содержимое памяти обратно в
>файл?

Просто malloc()?
Не мог бы ты привести пример копирования.


"Закачка файла в оперативу"
Отправлено vic , 29-Сен-08 19:49 
>>А что мещает выделить память, скопировать туда содержимое файла, работать с ним
>>в памяти, а после завершения работы скопировать содержимое памяти обратно в
>>файл?
>
>Просто malloc()?
>Не мог бы ты привести пример копирования.

man fread/fwrite
or
man mmap