Header-Datei:
#enthaltenSyntax:
void * mmap (void * adresse, size_t länge, int schützende, int flags, int -Anmeldungen,Argumente:
Die Funktion dauert 6 Argumente:
Adresse:
Dieses Argument gibt eine bevorzugte Startadresse für die Zuordnung. Wenn dort nicht eine andere Zuordnung existiert, wählt der Kernel eine nahe gelegene Seitengrenze aus und erstellt die Zuordnung. Andernfalls wählt der Kernel eine neue Adresse aus. Wenn dieses Argument null ist, kann der Kernel die Zuordnung überall hinstellen.
Länge:
Dies ist die Anzahl der Bytes, die zugeordnet werden sollen.
schützen:
Dieses Argument wird verwendet, um zu kontrollieren, welche Art von Zugang zulässig ist. Dieses Argument kann logisch sein oder 'der folgenden Flaggen Prot_read | Prot_write | Prot_exec | Prot_none. Die Zugriffstypen von Lesen, Schreiben und Ausführen sind die Berechtigungen des Inhalts.
Flaggen:
Dieses Argument wird verwendet, um die Art der Karte zu kontrollieren. Im Folgenden finden Sie einige gemeinsame Werte der Flags:
Abstellungen:
Dies ist der Dateideskriptor, der zugeordnet werden muss.
Offset:
Dies ist ausgefallen, wo die Dateizuordnung begonnen hat. In einfachen Worten stellt die Zuordnung eine Verbindung zu einer Verbindung zu (Offset) Zu (Offset+Länge-1) Bytes für die Datei öffnen auf Abstellungen Deskriptor.
Rückgabewerte:
Auf Erfolg die mmap () Gibt 0 zurück; Für den Fehler gibt die Funktion map_failed zurück.
Bildend können wir die Kartenfunktion wie folgt darstellen:
Für die Entfaltung der kartierten Region Munmap () Funktion wird verwendet:
Syntax:
int Munmap(Leere *Adresse, size_t Länge);
Rückgabewerte:
Auf Erfolg die Munmap () Gibt 0 zurück; Für den Fehler gibt die Funktion -1 zurück.
Beispiele:
Jetzt sehen wir ein Beispielprogramm für jeden der folgenden MMAP () -Systemanrufe:
Beispiel 1.C
#enthaltenIn Beispiel1.c Wir zuordnen Speicher mit MMAP zu. Hier haben wir prot_read | verwendet Prot_write -Schutz für das Lesen und Schreiben in die kartierte Region. Wir haben das MAP_PRIVATE | verwendet MAP_Anonyme Flagge. MAP_PRIVATE wird verwendet, weil die Zuordnungsregion nicht mit anderen Prozessen freigegeben wird und MAP_anonymous verwendet wird, da wir hier keine Datei abgebildet haben. Aus dem gleichen Grund die Dateideskriptor und das Offset Wert wird auf 0 gesetzt.
Beispiel2.C
#enthalten