Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       getpriority, setpriority - Lire/écrire la priorité d'ordonnancement du processus

SYNOPSIS

       #include <sys/time.h>
       #include <sys/resource.h>

       int getpriority(int which, int who);
       int setpriority(int which, int who, int prio);

DESCRIPTION

       La  priorité  d'ordonnancement  du  processus, du groupe de processus ou de l'utilisateur,
       comme précisé dans which et who est lue avec getpriority() et fixée avec setpriority().

       La valeur de which doit être PRIO_PROCESS, PRIO_PGRP, ou PRIO_USER, et who est  interprété
       en  fonction  de which (un ID de processus pour PRIO_PROCESS, un ID de groupe de processus
       pour PRIO_PGRP, et un ID d'utilisateur pour PRIO_USER). Une valeur nulle pour who  indique
       (respectivement) le processus appelant, le groupe de processus de l'appelant ou l'UID réel
       du processus appelant. Prio est une valeur dans l'intervalle -20 à 19 (voir les Notes plus
       bas).  La  priorité  par  défaut  est  0,  les  priorités  les  plus  faibles indiquant un
       ordonnancement le plus favorable.

       La fonction getpriority() renvoie la plus haute priorité (la plus basse valeur  numérique)
       dont  bénéficie l'un des processus indiqué. La fonction setpriority() fixe la priorité des
       processus indiqués à la valeur fournie. Seul le superutilisateur peut diminuer  la  valeur
       numérique de la priorité.

VALEUR RENVOYÉE

       Comme  getpriority()  peut  tout à fait renvoyer la valeur -1, il faut effacer la variable
       externe errno avant l'appel afin de vérifier si -1 indique  une  erreur  ou  une  priorité
       légitime. L'appel setpriority() renvoie 0 s'il réussit, ou -1 s'il échoue.

ERREURS

       EINVAL which n'était ni PRIO_PROCESS, ni PRIO_PGRP, ni PRIO_USER.

       ESRCH  Aucun processus ne correspond aux valeurs de which et who indiquées.

       De plus setpriority() peut échouer pour les erreurs suivantes :

       EACCES L'appelant  a  tenté  de  diminuer  la  priorité  d'un  processus,  sans  avoir les
              privilèges requis (sous Linux, il s'agit de la capacité CAP_SYS_NICE). Depuis Linux
              2.6.12,  cette  erreur ne survient que si l'appelant tente de fixer la priorité en‐
              dehors de la plage permise par la limite souple RLIMIT_NICE  du  processus  cible ;
              consultez getrlimit(2) pour plus de détails.

       EPERM  Un  processus  correspond  bien aux valeurs indiquées, mais ni l'UID réel, ni l'UID
              effectif de l'appelant ne correspondent à l'UID effectif de ce processus,  et  (sur
              les systèmes Linux) l'appelant n'a pas la capacité CAP_SYS_NICE. Voir les NOTES ci‐
              dessous.

CONFORMITÉ

       SVr4, BSD 4.4 (ces fonctions sont apparues dans BSD 4.2), POSIX.1-2001.

NOTES

       Un fils créé avec fork(2) hérite de la valeur de courtoisie de  son  père.  La  valeur  de
       courtoisie est préservée au travers d'un execve(2).

       L'importance  des  variations  d'ordonnancement  des  processus  suivant  leurs valeurs de
       courtoisies respectives dépend des systèmes UNIX et pour Linux, dépend de  la  version  du
       noyau.  Depuis  le  noyau  2.6.23,  Linux emploie un algorithme rendant plus sensibles les
       variations de courtoisies. Les valeurs de courtoisies élevées (+19) ne laissent  que  très
       peu  de  temps  CPU à un processus si d'autres programmes, plus prioritaires, réclament le
       processeur. Inversement, les valeurs de courtoisie basses (-20)  fournissent  beaucoup  de
       temps CPU aux tâches qui en ont besoin (par exemple, certaines applications audio).

       Les  détails  concernant  la condition d'erreur EPERM dépendent du système. La description
       ci‐dessus concerne ce que dit POSIX.1-2001, et qui semble être suivi par tous les systèmes
       de  type  System V.  Les  noyaux  Linux  antérieurs  à  2.6.12 demandent que l'UID réel ou
       effectif de l'appelant correspondent à l'UID réel du processus who (et non pas à  son  UID
       effectif). Linux 2.6.12 et suivants demandent que l'UID effectif de l'appelant corresponde
       à l'UID réel ou effectif du processus who. Tous les systèmes  de  type  BSD  (SunOS 4.1.3,
       Ultrix 4.2,  BSD 4.3,  FreeBSD 4.3, OpenBSD-2.5, ...) se comportent de la même manière que
       Linux 2.6.12 et les suivants.

       Le véritable intervalle des priorités  varie  suivant  les  versions  du  noyau.  Sur  les
       systèmes  Linux  antérieurs  à  1.3.36, l'intervalle s'étendait de -infini à 15. Depuis la
       version 1.3.43 l'intervalle est -20..19. Dans le noyau,  les  valeurs  de  politesse  sont
       représentées  dans  l'intervalle 40..1 (les nombres négatifs sont des codes d'erreurs), et
       ce  sont  ces  valeurs  qui  sont  utilisées  par  les  appels  système  setpriority()  et
       getpriority(). Les routines de la bibliothèque glibc se chargent des conversions entre les
       représentations  dans  le  noyau  et  dans  l'espace  utilisateur  grâce  à   la   formule
       unice = 20 - knice.

       Sur certains systèmes, les valeurs de politesse vont de -20 à 20.

       L'inclusion  de  <sys/time.h>  n'est  plus  obligatoire, mais améliore la portabilité. (En
       fait, <sys/resource.h> définit la structure rusage qui contient des champs de type  struct
       timeval, défini dans <sys/time.h>).

VOIR AUSSI

       nice(1), renice(1), fork(2), capabilities(7)

       Documentation/scheduler/sched-nice-design.txt   dans   les   sources   du   noyau  (depuis
       Linux 2.6.23).

COLOPHON

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

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <URL:http://po4a.alioth.debian.org/>  par  l'équipe  de  traduction francophone au sein du
       projet perkamon <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <URL:http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau et l'équipe francophone de
       traduction de Debian (2006-2009).

       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> ».