mincore Subroutine

Zweck

Bestimmt den Speicherort von Speicherseiten.

Bibliothek

Standard-C-Bibliothek (libc.a)

Syntax

int mincore ( addr len, * vec)
caddr_t addr;
size_t len;
char *vec;

Beschreibung

Die Subroutine mincore gibt den Primärspeicherresidenzstatus für Regionen zurück, die aus Aufrufen der Subroutine mmap erstellt wurden. Der Status wird als Zeichen für jede Speicherseite in dem mit den Parametern addr und len angegebenen Bereich zurückgegeben. Das niedrigstwertige Bit jedes zurückgegebenen Zeichens wird auf 1 gesetzt, wenn sich die referenzierte Seite im primären Speicher befindet. Andernfalls wird das Bit auf 0 gesetzt. Die Einstellungen der anderen Bits in jedem Zeichen sind nicht definiert.

Parameter

Element Beschreibung
addr Gibt die Startadresse der Speicherseiten an, deren Speicherort bestimmt werden soll. Muss ein Vielfaches der Seitengröße sein, die von der Subroutine sysconf mit dem Wert _SC_PAGE_SIZE für den Parameter Name zurückgegeben wird.
len Gibt die Länge (in Byte) der Speicherregion an, deren Speicherort bestimmt werden soll. Wenn der Wert für len kein Vielfaches der Seitengröße ist, die von der Subroutine sysconf zurückgegeben wird, die den Wert _SC_PAGE_SIZE für den Parameter Name verwendet, Die Länge der Region wird auf das nächste Vielfache der Seitengröße aufgerundet.
vec Gibt den Zeichenbereich an, in dem der Residenzstatus zurückgegeben wird. Das System geht davon aus, dass das mit dem Parameter vec angegebene Zeichenarray groß genug ist, um ein zurückgegebenes Zeichen für jede angegebene Seite einzuschließen.

Rückgabewerte

Bei erfolgreicher Ausführung gibt die Subroutine mincore den Wert 0 zurück. Andernfalls gibt es -1 zurück und setzt die globale Variable errno, um den Fehler anzuzeigen.

Fehlercodes

Wenn die Subroutine mincore nicht erfolgreich ist, wird die globale Variable errno auf einen der folgenden Werte gesetzt:

Element Beschreibung
EFAULT Ein Teil des Puffers, auf den der Parameter vec verweist, liegt außerhalb des gültigen Bereichs oder ist anderweitig nicht zugänglich.
EINVAL Der Parameter addr ist kein Vielfaches der Seitengröße, die von der Subroutine sysconf mithilfe des Werts _SC_PAGE_SIZE für den Parameter Name zurückgegeben wird.
ENOMEM Adressen im Bereich (addr, addr + len) sind für den Adressraum des Prozesses ungültig oder geben mindestens eine Seite an, die nicht zugeordnet ist.