Linux |
CentOS 4.8 |
|
swapoff(2) |
swapon, swapoff − Activer / désactiver un fichier ou un péripherique de swap. |
#include <unistd.h> int swapon(const char *path, int
swapflags); |
swapon active le swap sur le fichier ou le périphérique en mode bloc indiqué dans path. swapoff arrête le swap sur le fichier ou le périphérique en mode bloc indiqué dans path. swapon utilise un argument swapflags. Si cet argument a son bit SWAP_FLAG_PREFER à 1, la nouvelle zone de swap disposera d’une priorité plus élevée que la zone de swap par défaut. La priorité est codée ainsi : (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK Cette fonction ne peut être appelée que par le Super−User. |
Chaque zone de swap a une priorité, haute ou basse. La priorité par defaut est basse. Parmi les zones de basses priorités, les nouvelles zones sont toujours affectées d’une priorité inférieure à celle des zones précédentes. Toutes les priorités fixées avec l’argument swapflags sont plus élevées que la priorité par défaut. Elles peuvent prendre n’importe quelle valeur positive ou nulle choisie par l’appelant. Plus la valeur est haute, plus la priorité est élevée. Les pages de swap sont allouées dans les zones par ordre décroissant de priorité. Pour des zones de priorité différentes, la plus haute sera toujours remplie entièrement avant d’utiliser la zone de priorité plus faible. Si deux ou plus de zones ont la même priorite, et qu’il s’agit de la plus haute priorité disponible, les pages sont allouées en utilisant un algorithme Round−Robin entre elles. Sur linux 1.3.6, le noyau suit généralement ces règles, mais il y a parfois des exceptions. |
En cas de réussite 0 est renvoyé, sinon −1 est renvoyé et errno contient le code d’erreur. |
De nombreuses erreurs peuvent survenir si path n’est pas valide. |
EPERM |
L’utilisateur n’est pas Super−User ou il y a plus de MAX_SWAPFILES zones de swap actives (8 sous Linux 1.3.6). |
||
EINVAL |
path existe mais n’est ni un chemin régulier, ni un périphérique bloc. |
||
ENOENT |
path n’existe pas. |
||
ENOMEM |
Pas assez de mémoire pour démarrer le swapping. |
Ces fonctions sont spécifiques à Linux et ne doivent pas être employées dans des programmes destinés à être portables. |
La partition ou le fichier doivent être préparés par mkswap(8). |
mkswap(8), swapon(8), swapoff(8) |
Christophe Blaess, 1997. |
swapoff(2) |