Loading

NOM

       swapon, swapoff - Activer/désactiver un fichier ou périphérique de swap

SYNOPSIS

       #include <unistd.h>
       #include <asm/page.h> /* pour avoir PAGE_SIZE */
       #include <sys/swap.h>

       int swapon(const char *path, int swapflags);
       int swapoff(const char *path);

       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 un processus privilégié
       (qui a la capacité CAP_SYS_ADMIN.

   Priorité
       Chaque zone de swap a une priorité, haute ou  basse.  La  priorité  par
       défaut  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 priorité, 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.

VALEUR RENVOYÉE

       En cas de réussite, zéro est renvoyé, sinon -1  est  renvoyé  et  errno
       contient le code d’erreur.

ERREURS

       EBUSY  (pour  swapon())  Le  chemin  path est déjà utilisé comme espace
              d’échange.

       EINVAL Le  fichier  path  existe,  mais  ne  référence  ni  un  fichier
              ordinaire,  ni  un  périphérique  en  mode  bloc.  Ou bien, pour
              swapon(), le fichier indiqué ne contient  pas  de  signature  de
              swap  correcte  ou  réside sur un système de fichiers en mémoire
              comme  tmpfs.  Ou  bien,  pour   swapoff(),   path   n’est   pas
              actuellement un espace d’échange.

       ENFILE La  limite  du nombre total de fichiers ouverts sur le système a
              été atteinte.

       ENOENT path n’existe pas.

       ENOMEM Pas assez de mémoire pour démarrer le swapping.

       EPERM  L’appelant n’a pas  la  capacité  CAP_SYS_ADMIN,  ou  le  nombre
              maximum  de  fichiers  d’échange  est  atteint ; voir la section
              NOTES.

CONFORMITÉ

       Ces fonctions sont spécifiques à Linux et ne doivent pas être employées
       dans  des  programmes  destinés  à être portables. Le deuxième argument
       swapflags a été introduit dans Linux 1.3.2.

NOTES

       La partition ou le fichier doivent être préparés par mkswap(8).

       Le nombre de fichiers d’échanges qui peuvent être utilisés  est  limité
       par  la  constante  MAX_SWAPFILES  du  noyau.  Avant  le  noyau 2.4.10,
       MAX_SWAPFILES valait 8 ;  depuis  Linux  2.4.10,  il  vaut  32.  Depuis
       2.6.18, cette limite est décrémentée de 2 (et vaut donc 30) si le noyau
       est compilé avec l’option CONFIG_MIGRATION (qui réserve deux entrées de
       table  de swap pour les possibilités de migration offertes par mbind(2)
       et migrate_pages(2)).

VOIR AUSSI

       mkswap(8), swapoff(8), swapon(8)

COLOPHON

       Cette page fait partie de  la  publication  3.23  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

       Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document
       en utilisant la commande « man -L C <section> <page_de_man> ».