Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       getpriority, setpriority - Lire et é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 définit 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() définit 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 définir 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>).

BOGUES

       Selon la norme POSIX, la valeur de courtoisie (nice) est définie à l'échelle du processus. Cependant, les
       threads POSIX sont actuellement implémentés dans Linux/NPTL de telle sorte que la  valeur  de  courtoisie
       est  un  attribut  du  thread :  différents  threads  d'un  même  processus  peuvent avoir des valeurs de
       courtoisie différentes. Les applications portables doivent donc éviter de s'appuyer sur  cette  propriété
       de Linux, qui devrait, à l'avenir, être mise en conformité avec les normes.

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

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

       Christophe      Blaess      <http://www.blaess.fr/christophe/>      (1996-2003),       Alain       Portal
       <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> ».

Linux                                            12 février 2013                                  GETPRIORITY(2)