mmap2(2)

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

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#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);

DESCRIERE
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).

VALOAREA RETURNATĂ
Î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.

ERORI

EFAULT
    Probleme cu obținerea datelor din spațiul utilizatorului.

EINVAL
    (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).

VERSIUNI
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.

STANDARDE
Linux.

ISTORIC
Linux 2.3.31.

CONSULTAȚI ȘI
getpagesize(2), mmap(2), mremap(2), msync(2), shm_open(3)

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

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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.