mmap
Z Wikipedii, wolnej encyklopedii
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.