Сообщество / Новая тема

Обсуждение статьиПервый комментарий откроет обсуждение — дальше все вопросы по этой статье будут собираться здесь

Об статье:
Что такое mmap и почему файл можно читать как обычную переменную

Обычно доступ к файлу — это цепочка вызовов open(), read() в заранее выделенный буфер, обработка ошибок, close(). Но есть способ, при котором файл просто появляется в адресном пространстве процесса как обычный массив байт: buf[100500] читает данные из файла, а присваивание buf[100500] = 1 их туда пишет — без единого явного вызова read() или write(). Это и есть mmap(), и за этой простотой на уровне кода стоит довольно нетривиальная механика ядра, которую полезно понимать, прежде чем полагаться на неё в проде.

Подробнее →