mmap

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

mmap to wywołanie systemowe 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.

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 - ilość 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.
  • fd - deskryptor pliku, który chcemy odwzorować w pamięci.
  • offset - liczba określająca od którego miejsca w pliku chcemy rozpocząć odwzorowywanie.

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