übergibt -1 als Dateideskriptor an mmap

8

Ich habe eine strace auf dem "ls" -Befehl in FC17 Linux gemacht.

Folgendes war die Ausgabe.

%Vor%

Ich bekomme nicht den Zweck und das Ergebnis der Übergabe von -1 als Dateideskriptor an den mmap-Aufruf, kann jemand etwas Licht auf dieses Thema werfen?

    
user28264 10.06.2014, 08:28
quelle

2 Antworten

4

Es gibt zwei Arten von Zuordnungen (Bereiche des virtuellen Speichers, die einem Prozess zugeordnet sind): Datei-unterstützte Zuordnungen und anonyme (nicht Datei-unterstützte) Zuordnungen. Es gibt zwei Möglichkeiten, eine anonyme Zuordnung anzufordern:

  • (BSD) Übergeben Sie MAP_ANONYMOUS (früher MAP_ANON ) an mmap() . Es gibt keine verknüpfte Datei, daher sollten Sie -1 als file -Parameter übergeben. Einige Betriebssysteme ignorieren den Parameter file , andere erfordern die Angabe -1 (BSD IIRC).
  • (Sys V) Karte /dev/zero . In diesem Fall ist file offensichtlich sinnvoll.
ninjalj 13.06.2014 15:26
quelle
2

Siehe mmap(2) . Dies weist zusammen mit dem MAP_ANONYMOUS -Flag Shared Memory zu. Es ist eine Alternative zu SysV-style shared memory ( shmctl ).

    
pilona 13.06.2014 01:04
quelle

Tags und Links