Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       mmap, munmap - lege Dateien oder Devices in Speicherbereich

       Diese  Handbuchseite ist eventuell veraltet. Im Zweifelsfall ziehen Sie
       die englischsprachige Handbuchseite zu Rate, indem Sie

              man -LC 2 mmap

       eingeben.

"UBERSICHT

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

       #ifdef _POSIX_MAPPED_FILES

       void * mmap(void *start, size_t length, int prot , int flags,  int  fd,
       off_t offset);

       int munmap(void *start, size_t length);

       #endif

BESCHREIBUNG

       Die  Funktion  mmap  projiziert  length Bytes von der Datei (oder einem
       anderen  Objekt)  fd  ab  Offset  offset  in   einen   Speicherbereich,
       vorzugsweise  ab der Adresse start.  Die letzte Adresse ist nur ein Tip
       und wird normalerweise nicht angegeben, indem 0 eingetragen wird.   Der
       tatsachliche  Platz,  an den das Objekt projiziert wurde, wird von mmap
       zuruckgegeben.   Der   Parameter   prot   beschreibt   den   gewunschte
       Speicherschutz.  Er besteht aus folgenden Bits:

       PROT_EXEC
              Die Seiten konnen ausgefuhrt werden.

       PROT_READ
              Die Seiten durfen gelesen werden.

       PROT_WRITE
              Die Seiten durfen beschrieben werden.

       Der  Parameter  flags  gibt  den  Typ des zu projizierenden Objekts und
       Projektionsoptionen  an,  sowie  ob  Veranderungen  an  der  Kopie  des
       projizierten  Objekts  fur  den  Prozess  privat  sind oder mit anderen
       Referenzen gemeinsam genutzt werden.  Er besteht aus folgenden Bits:

       MAP_FIXED
              Verwende keine andere Adresse also  die  angegebene.   Wenn  die
              angegebene   Adresse   nicht  benutzt  werden  kann,  wird  mmap
              fehlschlagen.  Wenn MAP_FIXED  angegeben  ist,  muss  start  ein
              Vielfaches  der  SeitengroBe  sein.   Von  der Verwendung dieser
              Option wird abgeraten.

       MAP_SHARED
              Die Seiten durfen  mit  anderen  Prozessen,  die  dieses  Objekt
              ebenfalls in den Speicher projizieren, gemeinsam benutzt werden.

       MAP_PRIVATE
              Lege eine private Copy-on-Write-Projektion des Objekts an.

       Die  obigen  drei  Flags  sind  in  POSIX.4  beschrieben.   Linux kennt
       zusatzlich noch MAP_DENYWRITE, MAP_EXECUTABLE und MAP_ANON(YMOUS).

       Der  munmap-Systemaufruf  loscht  die   Projektionen   im   angegebenen
       Speicherbereich.   Zukunftige  Zugriffe  auf diesen Adressraum erzeugen
       einen  Fehler  vom  Typ  "invalid  memory   reference"   -   Ungultiger
       Speicherzugriff.

R"UCKGABEWERT

       Bei  Erfolg gibt mmap einen Zeiger auf den projizierten Speicherbereich
       zuruck.  Bei Fehlern wird  MAP_FAILED  (-1)   zuruckgegeben  und  errno
       entsprechend  gesetzt.   Bei  erfolgreicher  Ausfuhrung  gibt  munmap 0
       zuruck, bei Fehlern -1 und setzt errno (meistens auf EINVAL).

FEHLER

       EBADF  fd ist kein gultiger Dateideskriptor  (und  MAP_ANONYMOUS  wurde
              nicht angegeben).

       EACCES MAP_PRIVATE  wurde  angegeben,  aber  fd  wurde  nicht zum Lesen
              geoffnet.  Oder MAP_SHARED wurde  spezifiziert,  PROT_WRITE  ist
              gesetzt und fd ist nicht zum Schreiben geoffnet.

       EINVAL Die  Adressen,  die  durch  start,  length  und offset angegeben
              wurden, sind ungultig.  (Z.B. sind sie zu groB oder nicht an der
              SpeicherseitengroBe ausgerichtet.)

       ETXTBUSY
              MAP_DENYWRITE  wurde  angegeben,  aber  das Objekt, das durch fd
              bezeichnet wurde, ist zum Schreiben geoffnet.

       EAGAIN Die Datei ist gelockt  (wird  von  einem  anderen  Prozess  oder
              Thread gehalten) oder zuviel Speicher ist gelockt.

       ENOMEM Es steht kein Speicher mehr zur Verfugung.

KONFORM ZU

       POSIX.4.

SIEHE AUCH

       getpagesize(2),   msync(2),   shm_open(2),   B.O.  Gallmeister  POSIX.4
       O'Reilly pp. 128-129 and 389-391.