Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       getpriority,  setpriority - Lire/ecrire la priorite 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 priorite d'ordonnancement du processus, du groupe de processus ou de
       l'utilisateur,   comme   precise   dans  which  et  who  est  lue  avec
       getpriority() et fixee avec setpriority().

       La valeur de which doit etre PRIO_PROCESS, PRIO_PGRP, ou PRIO_USER,  et
       who  est  interprete  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  reel  du processus appelant. Prio est une valeur
       dans l'intervalle -20 a 19 (voir les Notes plus bas). La  priorite  par
       defaut   est   0,   les   priorites   les  plus  faibles  indiquant  un
       ordonnancement le plus favorable.

       La fonction getpriority() renvoie la plus haute priorite (la plus basse
       valeur  numerique)  dont  beneficie  l'un  des  processus  indique.  La
       fonction setpriority() fixe la priorite des  processus  indiques  a  la
       valeur  fournie.  Seul  le  superutilisateur  peut  diminuer  la valeur
       numerique de la priorite.

VALEUR RENVOY'EE

       Comme getpriority() peut tout a fait renvoyer la  valeur  -1,  il  faut
       effacer  la variable externe errno avant l'appel afin de verifier si -1
       indique une erreur ou  une  priorite  legitime.  L'appel  setpriority()
       renvoie 0 s'il reussit, ou -1 s'il echoue.

ERREURS

       EINVAL which n'etait ni PRIO_PROCESS, ni PRIO_PGRP, ni PRIO_USER.

       ESRCH  Aucun  processus  ne  correspond  aux  valeurs  de  which et who
              indiquees.

       De plus setpriority() peut echouer pour les erreurs suivantes :

       EACCES L'appelant a tente de diminuer la priorite d'un processus,  sans
              avoir  les  privileges  requis  (sous  Linux,  il  s'agit  de la
              capacite CAP_SYS_NICE). Depuis Linux  2.6.12,  cette  erreur  ne
              survient  que si l'appelant tente de fixer la priorite en-dehors
              de  la  plage  permise  par  la  limite  souple  RLIMIT_NICE  du
              processus cible ; consultez getrlimit(2) pour plus de details.

       EPERM  Un  processus  correspond  bien  aux  valeurs indiquees, mais ni
              l'UID reel, ni l'UID effectif de l'appelant ne  correspondent  a
              l'UID  effectif  de  ce  processus,  et (sur les systemes Linux)
              l'appelant n'a pas la capacite CAP_SYS_NICE. Voir les NOTES  ci-
              dessous.

CONFORMIT'E

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

NOTES

       Un  fils  cree  avec  fork(2)  herite de la valeur de courtoisie de son
       pere. La valeur de courtoisie est preservee au travers d'un execve(2).

       L'importance des  variations  d'ordonnancement  des  processus  suivant
       leurs  valeurs  de  courtoisies respectives depend des systemes Unix et
       pour Linux, depend 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 elevees (+19) ne  laissent  que
       tres  peu  de  temps  CPU  a  un processus si d'autres programmes, plus
       prioritaires, reclament le  processeur.  Inversement,  les  valeurs  de
       courtoisie  basses  (-20)  fournissent beaucoup de temps CPU aux taches
       qui en ont besoin (par exemple, certaines applications audio).

       Les  details  concernant  la  condition  d'erreur  EPERM  dependent  du
       systeme.  La description ci-dessus concerne ce que dit POSIX.1-2001, et
       qui semble etre suivi par tous  les  systemes  de  type  System V.  Les
       noyaux  Linux  anterieurs a 2.6.12 demandent que l'UID reel ou effectif
       de l'appelant correspondent a l'UID reel du processus who (et non pas a
       son  UID  effectif).  Linux  2.6.12  et  suivants  demandent  que l'UID
       effectif  de  l'appelant  corresponde  a  l'UID  reel  ou  effectif  du
       processus  who. Tous les systemes de type BSD (SunOS 4.1.3, Ultrix 4.2,
       BSD 4.3, FreeBSD 4.3,  OpenBSD-2.5,  ...)  se  comportent  de  la  meme
       maniere que Linux 2.6.12 et les suivants.

       Le  veritable  intervalle  des  priorites varie suivant les versions du
       noyau.  Sur  les  systemes  Linux  anterieurs  a  1.3.36,  l'intervalle
       s'etendait  de  -infini a 15. Depuis la version 1.3.43 l'intervalle est
       -20..19. Dans le noyau, les valeurs de politesse sont representees dans
       l'intervalle  40..1 (les nombres negatifs sont des codes d'erreurs), et
       ce  sont  ces  valeurs  qui  sont  utilisees  par  les  appels  systeme
       setpriority()  et  getpriority(). Les routines de la bibliotheque glibc
       se chargent des conversions entre les representations dans le noyau  et
       dans l'espace utilisateur grace a la formule unice = 20 - knice.

       Sur certains systemes, les valeurs de politesse vont de -20 a 20.

       L'inclusion  de  <sys/time.h>  n'est plus obligatoire, mais ameliore la
       portabilite. (En fait, <sys/resource.h> definit la structure rusage qui
       contient des champs de type struct timeval, defini dans <sys/time.h>).

VOIR AUSSI

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

       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.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   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'equipe francophone de traduction de Debian (2006-2009).

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

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.