Пример использования mmap в режиме MAP_SHARED - можно запустить параллельно несколько процессов, и они будут видеть изменения других процессов.
Пример использования mmap в режиме MAP_ANONYMOUS | MAP_SHARED - можно запустить параллельно несколько процессов, но каждый процесс будет работать со своими данными.
Пример использования mmap в режиме MAP_ANONYMOUS | MAP_SHARED - будет создан сыновний процесс, и родитель и сын будут читать и модифицировать общие данные.
Пример использования mmap в режиме MAP_ANONYMOUS | MAP_PRIVATE будет создан сыновний процесс, родитель и сын будут работать со своими данными.
Пример использования mmap в режиме MAP_PRIVATE - изменения в одном процессе не будут видны в других процессах. Обратите внимание, что файл открыт O_RDONLY, а mmap выполняется с правами PROT_READ | PROT_WRITE.
Пример использования mmap в режиме MAP_PRIVATE - изменения в одном процессе не будут видны в других процессах. Обратите внимание, что неспотря на то, что файл открыт O_RDWR, но измененные данные в файл не записываются.
Пример использования mmap в режиме MAP_SHARED - файл открыт в режиме "только для чтения", а mmap пытается подключить его как "чтение-запись", и mmap завершится с ошибкой EPERM - Permission denied.
Описание /proc/[pid]/maps и справка по procfs.
Поясняющие картинки by corkami (кликабельно):