Ich bin verwirrt durch die specification of mmap.Ausrichtung und Granularität von mmap
Lassen pa
die Rücksprungadresse von Mmap sein (das gleiche wie die Spezifikation)
pa = Mmap (addr, len, Prot, Fahnen, fildes, aus);
Meiner Meinung nach dem Aufruf Funktion den folgenden Bereich erfolgreich gilt
[pa, pa + len)
Meine Frage ist, ob der Bereich der folgenden Bedingungen noch gültig?
[round_down (pa, Seitengrße), round_up (pa + len, Seitengrße))
[base, base + size] für kurze
Das heißt:
- ist die
base
immer auf der Seitengrenze ausgerichtet? - ist die
size
immer ein Vielfaches von pagesize (die Granularität ist pagesize mit anderen Worten)?
Danke für Ihre Hilfe.
ich denke, es in diesem Absatz angedeutet wird:
Das off Argument eingeschränkt ist nach dem von sysconf() zurückgegebene Wert ausgerichtet und so bemessen werden, wenn _SC_PAGESIZE oder _SC_PAGE_SIZE geben. Wenn MAP_FIXED angegeben ist, muss die Anwendung sicherstellen, dass das Argument addr diese Einschränkungen ebenfalls erfüllt. Die Implementierung führt Mapping-Vorgänge über ganze Seiten hinweg. Während also das Argument len eine Größen- oder Ausrichtungsbeschränkung nicht erfüllen muss, muss die Implementierung in jeder Zuordnungsoperation jede Teilseite einschließen, die durch den Bereich [pa, pa + len] spezifiziert ist.
Aber ich bin mir nicht sicher und ich habe nicht viel Erfahrung auf POSIX.
- Bitte zeigen Sie mir etwas mehr explizite und mehr definitive Beweise
- Oder zeigen Sie mir mindestens ein System, das POSIX unterstützt und ein anderes Verhalten
Dank agian hat.