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