Використання mmap для файлів може істотно зменшити витрати пам'яті для програм, які звертаються до того самого файлу; вони можуть спільно використовувати область пам’яті, яку охоплює файл, замість того, щоб завантажувати файл для кожної програми, яка хоче отримати до нього доступ. Це означає, що mmap(2) іноді використовується для міжпроцесного зв’язку (IPC).
Функція mmap(). встановлює відображення між адресним простором процесу (для len байтів) і файлом, який пов’язаний із файловим дескриптором fildes зі зміщенням off для len байтів. Формат виклику такий: pa=mmap(addr, len, prot, flags, fildes, off);
Функція mmap використовується для двох речей: зіставити файл у пам’ять. Це дозволяє вашій програмі читати/записувати файл так, ніби ви виділили шматок пам’яті та зчитуєте його весь у цю пам’ять – але фактично без необхідності читати весь файл у комірці пам'яті.
Зауважте, що хоча mmap() спочатку був розроблений для відображення файлів, насправді це засіб відображення загального призначення. Його можна використовувати щоб зіставити будь-який відповідний об'єкт, такий як пам'ять, файли, пристрої тощо, в адресний простір процесу.
Mmap відображає сторінки пам'яті безпосередньо в байти на диску. З mmap, щоразу, коли виникає помилка сторінки, ядро витягує сторінку безпосередньо з диска в простір пам'яті програми. Навпаки, за допомогою системного виклику pread ядро читає файл у простір ядра, а потім копіює пам’ять у простір користувача.
Загалом купа — це одна конкретна область пам’яті, створена середовищем виконання C і керована malloc (який, у свою чергу, використовує системні виклики brk і sbrk для збільшення та звуження). mmap — це спосіб створення нових областей пам’яті незалежно від malloc (тобто незалежно від купи).