Provided by:
manpages-nl_20051127-4_all
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 argu‐
ment 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 wor‐
den 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 pro‐
cessen 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 verwi‐
jzingen naar adressen binnen het interval een ongeldige geheugen verwi‐
jzing geven.
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_ANONY‐
MOUS 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 {pag‐
ina 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.
SVr4, POSIX.1b (eerder POSIX.4), 4.4BSD. Svr4 beschrijft aanvullende
fout codes ENXIO en ENODEV.
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 $