mmapwywołanie systemowe w systemach uniksowych i uniksopodobnych, nakazujące systemowi operacyjnemu odwzorowanie danej części wybranego pliku w przestrzeni adresowej procesu. Operacja ta powoduje, że do obszaru pliku można odnosić się jak do zwykłej tablicy bajtów w pamięci, eliminując potrzebę korzystania z dodatkowych wywołań systemowych typu read lub write. Z tego powodu często używa się tej operacji do przyspieszenia działania na dużych plikach.

Prototyp funkcji w języku C ma następującą postać:

void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);

Znaczenie poszczególnych parametrów:

  • start – określa adres, w którym chcemy widzieć odwzorowanie pliku. Nie jest wymagane i nie zawsze jest przestrzegane przez system operacyjny.
  • length – liczba bajtów jaką chcemy odwzorować w pamięci.
  • prot – flagi określające uprawnienia jakie chcemy nadać obszarowi pamięci, np. tylko do odczytu, etc.
  • flags – dodatkowe flagi określające sposób działania wywołania mmap.
  • fddeskryptor pliku, który chcemy odwzorować w pamięci.
  • offset – liczba określająca od którego miejsca w pliku chcemy rozpocząć odwzorowywanie.

W celu użycia funkcji mmap należy włączyć plik nagłówkowy <sys/mman.h>.

W celu zlikwidowania odwzorowania należy użyć wywołania munmap.