mmap2(2) System Calls Manual mmap2(2)

mmap2 - înregistrează fișiere sau dispozitive în memorie

Biblioteca C standard (libc, -lc)

#include <sys/mman.h>    /* Definirea constantelor MAP_* și PROT_* */
#include <sys/syscall.h> /* Definirea constantelor SYS_* */
#include <unistd.h>
void *syscall(SYS_mmap2, unsigned long addr, unsigned long length,
              unsigned long prot, unsigned long flags,
              unsigned long fd, unsigned long pgoffset);

Probabil că acesta nu este apelul de sistem care vă interesează; în schimb, consultați mmap(2), care descrie funcția învăluitoare glibc care invocă acest apel de sistem.

Apelul de sistem mmap2() oferă aceeași interfață ca și mmap(2), cu excepția faptului că argumentul final specifică poziția în fișier în unități de 4096 de octeți (în loc de octeți, așa cum face mmap(2)). Acest lucru permite aplicațiilor care utilizează un off_t pe 32 de biți să înregistreze fișiere mari (până la 2^44 octeți).

În caz de succes, mmap2() returnează un indicator către zona înregistrată. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

Probleme cu obținerea datelor din spațiul utilizatorului.
(Diverse platforme unde dimensiunea paginii nu este de 4096 octeți.) offset * 4096 nu este un multiplu al dimensiunii paginii de sistem.

mmap2() poate returna, de asemenea, oricare dintre erorile descrise în mmap(2).

Pe arhitecturile în care este prezent acest apel de sistem, funcția de învăluire glibc mmap() invocă acest apel de sistem mai degrabă decât apelul de sistem mmap(2).

Acest apel de sistem nu există pentru arhitectura x86_64.

Pe ia64, unitatea pentru offset este de fapt dimensiunea paginii de sistem, mai degrabă decât 4096 octeți.

Linux.

Linux 2.3.31.

getpagesize(2), mmap(2), mremap(2), msync(2), shm_open(3)

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

31 octombrie 2023 Pagini de manual de Linux 6.06