mmap

MMAP(2)                 Linux Programmeurs Handleiding                 MMAP(2)



NAAM
       mmap, munmap - leg-uit of de-leg-uit bestanden of  aparaten in het
       werkgeheugen

OVERZICHT
       #include <unistd.h>
       #include <sys/mman.h>

       caddr_t mmap(void *start, size_t lengte, int prot , int vlaggen, int
       bi, off_t positie);

       int munmap(void *start, size_t lengte);

BESCHRIJVING
       De mmap functie vraagt om lengte bytes uit te leggen vanaf positie in
       het bestand (of ander object) opgegeven door bi in het werkgeheugen,
       bij voorkeur op adres start.  Dit laatste adres is alleen een wenk en
       wordt gewoonlijk opgegeven als 0.  De daadwerkelijke plaats waar het
       object uit gelegd wordt, wordt teruggegeven door mmap.  Het prot
       argument beschrijft de verlangde geheugen bescherming. Het heeft de
       bits

       PROT_EXEC  {bescherm voer-uit} Pagina's mogen uitgevoerd worden.

       PROT_READ  {bescherm lees} Pagina's mogen gelezen worden.

       PROT_WRITE {bescherm schrijf} Pagina's mogen geschreven worden.

       PROT_NONE  {bescherm niks} Pagina's zijn niet toegankelijk.

       De vlaggen grootheid geeft het soort uit-gelegd voorwerp, uit-leg
       keuzes en of gemaakte aanpassingen op de geïnterpreteerde kopieerde
       pagina persoonlijk voor het proces zijn of dat ze gedeeld worden met
       andere verwijzingen. Het heeft bits

       MAP_FIXED  {kaart vast} Kies geen verschillend adres dan het
                  opgegevene.  Als het opgegeven adres niet gebruikt kan
                  worden zal mmap falen. Als MAP_FIXED wordt opgegeven moet
                  start een meervoud van de paginagrootte zijn. Gebruik van
                  deze keuze wordt ontmoedigd.

       MAP_SHARED {kaart gedeeld} Deel deze uit-legging met alle andere
                  processen die dit voorwerp uit-leggen.

       MAP_PRIVATE
                  {kaart persoonlijk} Maak een persoonlijke kopieëring-bij-
                  schrijven {"copy-on-write"} uit-legging.

       Je moet precies één van MAP_SHARED of MAP_PRIVATE opgeven.

       De bovenstaande drie vlaggen worden beschreven in POSIX.1b (eerder
       POSIX.4).  Linux kent ook MAP_DENYWRITE {kaart weiger schrijf},
       MAP_EXECUTABLE {kaart uitvoerbare} en MAP_ANON(YMOUS) {kaart anoniem}

       De mmap {geheugen de-uit-leg} systeem aanroep schrapt de uitleggingen
       voor het opgegeven adres interval, en veroorzaakt dat verdere
       verwijzingen naar adressen binnen het interval een ongeldige geheugen
       verwijzing geven.


TERUGGEEF WAARDE
       Bij success geeft mmap een pointer naar een uit-gelegd gebied.  Bij
       falen wordt -1 teruggegeven en errno wordt naar behoren gezet.  Bij
       success geeft mmap 0 terug, bij falen -1 en errno wordt gezet
       (waarschijnlijk naar EINVAL).

FOUTEN
       EBADF  {slechte bi} bi is geen geldige bestandindicator (en
              MAP_ANONYMOUS was niet gezet).

       EACCES {toegang} MAP_PRIVATE {kaart persoonlijk} werd gevraagd, maar bi
              is niet open voor lezen. Of MAP_SHARED werd gevraagd en
              PROT_WRITE is gezet, bi is niet open voor schrijven.

       EINVAL {ongeldig} We houden niet van start of lengte of positie.
              (o.a., ze zijn te groot of niet opgelijnd met een PAGESIZE
              {pagina grootte} grens.

       ETXTBUSY
              {text bezig} MAP_DENYWRITE {kaart weiger schrijf} werd gezet
              maar het voorwerp opgegeven door bi is open voor schrijven.

       EAGAIN {opnieuw} Het bestand was vergrendelt of teveel geheugen was
              vergrendelt.

       ENOMEM {geen geheugen} Geen geheugen is beschikbaar.

VOLDOET AAN
       SVr4, POSIX.1b (eerder POSIX.4), 4.4BSD.  Svr4 beschrijft aanvullende
       fout codes ENXIO en ENODEV.

ZIE OOK
       getpagesize(2) {krijg pagina maat}, msync(2) {geheugen harmonizeer},
       shm_open(2) {?}, B.O. Gallmeister, POSIX.4, O'Reilly, pag. 128-129 en
       389-391.


VERTALING
       Dit is een handleiding uit manpages-dev 1.29.  Alles wat tussen
       `{'..`}' staat is aanvullende vertaling, en hoort niet bij de originele
       handleiding.  Email naar <manpages-nl@nl.linux.org>.

       $Id: mmap.2,v 1.2 2005/01/31 09:44:37 wouter Exp $



Linux 1.3.86                     12 April 1996                         MMAP(2)