Hauptindex | Abschnitt 2 | English | 日本語 | Optionen |
#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
PROT_EXEC | |
Die Seiten können ausgeführt werden. | |
PROT_READ | |
Die Seiten dürfen gelesen werden. | |
PROT_WRITE | |
Die Seiten dürfen beschrieben werden. | |
Der Parameter flags gibt den Typ des zu projizierenden Objekts und Projektionsoptionen an, sowie ob Veränderungen an der Kopie des projizierten Objekts für den Prozeß 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, muß start ein Vielfaches der Seitengröße sein. Von der Verwendung dieser Option wird abgeraten. | |
MAP_SHARED | |
Die Seiten dürfen 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. | |
Der munmap-Systemaufruf löscht die Projektionen im angegebenen Speicherbereich. Zukünftige Zugriffe auf diesen Adreßraum erzeugen einen Fehler vom Typ "invalid memory reference" - Ungültiger Speicherzugriff.
EBADF | fd ist kein gültiger Dateideskriptor (und MAP_ANONYMOUS wurde nicht angegeben). |
EACCES | MAP_PRIVATE wurde angegeben, aber fd wurde nicht zum Lesen geöffnet. Oder MAP_SHARED wurde spezifiziert, PROT_WRITE ist gesetzt und fd ist nicht zum Schreiben geöffnet. |
EINVAL | Die Adressen, die durch start, length und offset angegeben wurden, sind ungültig. (Z.B. sind sie zu groß oder nicht an der Speicherseitengröße ausgerichtet.) |
ETXTBUSY | |
MAP_DENYWRITE wurde angegeben, aber das Objekt, das durch fd bezeichnet wurde, ist zum Schreiben geöffnet. | |
EAGAIN | Die Datei ist gelockt (wird von einem anderen Prozeß oder Thread gehalten) oder zuviel Speicher ist gelockt. |
ENOMEM | Es steht kein Speicher mehr zur Verfügung. |
15. Juni 1996 | MMAP (2) | Linux 1.3.86 |
Hauptindex | Abschnitt 2 | English | 日本語 | Optionen |
Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.