Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

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

SYNOPSIS

       #include <sys/resource.h>

       int getpriority(int which, id_t who);
       int setpriority(int which, id_t 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 l'appel getpriority() et définie avec l'appel
       setpriority().  L'attribut  du  processus  concerné par ces appels système est le même que
       celui géré par nice(2) (appelé aussi la valeur « de politesse »).

       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 du processus appelant ou
       l'UID réel du processus appelant.

       The prio argument is a value in the range -20 to 19 (but see NOTES below), with -20  being
       the  highest priority and 19 being the lowest priority. Attempts to set a priority outside
       this range are silently clamped to the range. The default priority is 0; lower values give
       a process a higher scheduling priority.

       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()  positionne  la
       priorité des processus indiqués à la valeur fournie.

       Traditionnellement,  seul un processus privilégié pouvait diminuer la valeur de courtoisie
       (c'est-à-dire  augmenter  la  priorité).  Mais  depuis  Linux 2.6.12,  un  processus   non
       privilégié  peut  diminuer  la  valeur de courtoisie d'un processus cible ayant une limite
       souple RLIMIT_NICE convenable ; voir getrlimit(2) pour des détails.

VALEUR RENVOYÉE

       On success, getpriority()  returns the  calling  thread's  nice  value,  which  may  be  a
       negative number. On error, it returns -1 and sets errno to indicate the error.

       Since  a  successful  call  to  getpriority()  can legitimately return the value -1, it is
       necessary to clear errno prior to the call, then check errno afterward to determine if  -1
       is an error or a legitimate value.

       setpriority()   returns 0 on success. On failure, it returns -1 and sets errno to indicate
       the error.

ERREURS

       EACCES L'appelant a tenté de définir une valeur de politesse plus basse (c'est-à-dire  une
              priorité  de  processus plus élevée) mais il n'a pas les droits requis (sur Linux :
              il n'a pas la capacité CAP_SYS_NICE).

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

       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.

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

CONFORMITÉ

       POSIX.1-2001,  POSIX.1-2008,  SVr4,  4.4BSD (ces interfaces sont apparues pour la première
       fois dans 4.2BSD).

NOTES

       Pour plus de détails sur la valeur de courtoisie, voir sched(7).

       Remarque : l'ajout de la fonctionnalité  « autogroup »  à  Linux 2.6.38  signifie  que  la
       valeur  de  courtoisie  n'a  plus son effet traditionnel dans de nombreuses circonstances.
       Pour des détails, voir sched(7).

       Un enfant créé avec fork(2) hérite de la valeur de politesse de son parent. La  valeur  de
       politesse est préservée au travers d'un execve(2).

       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.

   différences entre bibliothèque C et noyau
       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. (De cette façon, l'intervalle [40,1] du
       noyau correspond à l'intervalle [-20,19] dans l'espace utilisateur).

BOGUES

       Selon  la  norme  POSIX,  la  valeur  de  politesse  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  politesse  est  un  attribut du thread : différents threads d'un même
       processus peuvent avoir des valeurs de politesse 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), sched(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 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot   <david@tilapin.org>,   Cédric   Boutillier
       <cedric.boutillier@gmail.com>,  Frédéric  Hantrais  <fhantrais@gmail.com> et Jean-Philippe
       MENGUAL <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.