SWAPON(2)

BEZEICHNUNG
swapon, swapoff - Starten/Beenden des Swapping auf ein Gerät oder in eine Datei

ÜBERSICHT
#include <unistd.h>
#include <asm/page.h> /* zum Bestimmen von PAGE_SIZE */
#include <sys/swap.h>

intswapon(constchar*path,intswapflags);
intswapoff(constchar*path);

BESCHREIBUNG
swapon weist den Swap-Bereich der Datei oder dem Block-Gerät zu, dass in path festgelegt wurde. swapoff beendet das Swapping in die Datei oder das Block-Gerät zu, dass in path festgelegt wurde.

swapon verwendet ein Argument vom Typ swapflags. Wenn swapflags mit aktiviertem SWAP_FLAG_PREFER -Bit übergeben wird, hat der neue Swap-Bereich eine höhere Priorität als der vorgegebene. Die Priorität ist kodiert als:

(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

Diese Funktionen können nur vom Superuser verwendet werden.

PRIORITY
Jeder Swap-Bereich hat eine Priorität, hoch oder niedrig. Die Vorgabe-Priorität ist niedrig. Innerhalb der Bereich mit niedriger Priorität erhalten neuere Bereich eine niedrigere Priorität als ältere.

Alle mit swapflags gesetzten Prioritäten sind hohe Prioritäten, und höher als die Vorgabe. Sie können einen beliebigen durch den Aufrufenden gewählten nicht-negativen Wert haben. Höhere Zahlen entsprechen höheren Prioritäten.

Swap-Seiten werden nach Priorität aus den Bereichen zugeordnet, die mit der höchsten Priorität zuerst. Bei Bereichen mit unterschiedlichen Prioritäten werden die mit der höheren Priorität zuerst ausgeschöpt, bevor Bereiche mit niedriger Priorität genutzt werden. Haben zwei oder mehr Bereiche die gleiche Priorität und diese ist die höchste verfügbare, dann werden die Seiten nacheinander im Wechsel verwendet.

In Linux 1.3.6 beispielsweise befolgt der Kernel diese Regeln gewöhnlich, aber es gibt auch Ausnahmen.

RÜCKGABEWERT
Bei Erfolg wird NULL zurückgegeben. Tritt ein Fehler auf, wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER
Es können viele weitere Fehler auftreten, wenn path ungültig ist.

EPERM
    Der Anwender ist nicht der Superuser oder mehr als MAX_SWAPFILES (Vorgabe unter Linux 1.3.6 ist 8) verwendet werden.

EINVAL
    wird zurückgegeben, wenn path vorhanden ist, aber weder ein gültiger Pfad noch eine Block-Gerät ist.

ENOENT
    wird zurückgegeben, wenn path nicht existiert.

ENOMEM
    wird zurückgegeben, wenn nicht genügen Speicher für den Start des Swapping vorhanden ist.

KONFORM ZU
Diese Funktionen sind spezifisch für Linux und sollten deshalb nicht in Programmen verwendet werden, die portierbar sein sollen. Das zweite `swapflags'-Argument wurde mit Linux 1.3.2 eingeführt.

ANMERKUNGEN
Die Partition oder der Pfad müssen mit mkswap(8) vorbereitet werden.

SIEHE AUCH
mkswap(8), swapon(8), swapoff(8).