У меня есть следующие вопросы, связанные с обработкой файлов и их отображением (mmap
):
- Мы знаем, что если мы создадим файл и напишем в этот файл, то оба способа мы записываем в память. Тогда зачем сопоставлять этот файл в памяти с помощью
mmap
, а затем писать? - Если из-за защиты, которую мы достигаем с помощью
mmap
-PROT_NONE
,PROT_READ
,PROT_WRITE
, то такой же уровень защиты также может быть достигнут с использованием файлов.O_RDONLY
,O_RDWR
и т.д. Тогда почемуmmap
? - Есть ли какое-то особое преимущество при отображении файлов в память, а затем его использование? Вместо того, чтобы просто создавать файл и писать на него?
- Наконец, предположим, что мы
mmap
файл в память, если мы пишем в это место памяти, возвращаемое mmap, также он также записывает в этот файл?
Просьба помочь мне ответить на все запросы.
Большое спасибо заранее.
* EDIT: совместное использование файлов между потоками *
Насколько я знаю, если мы делим файл между двумя потоками (а не процессом), тогда желательно mmap
его в память, а затем использовать его, а не напрямую использовать файл.
Но мы знаем, что использование файла означает, что оно, безусловно, находится в основной памяти, то почему снова нужно, чтобы потоки были скопированы?