Provided by: manpages-fr-dev_4.13-4_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, 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.

       Le paramètre prio est  une  valeur  sur  l'intervalle  -20  à  19  (mais  voir  les  NOTES
       ci-dessous),  où -20 est la priorité la plus élevée et 19 celle la plus basse. Les valeurs
       pour définir une priorité en dehors de cet intervalle sont silencieusement  ramenées  dans
       l'intervalle.  La  priorité  par  défaut  est  0 ;  les valeurs les plus basses donnent au
       processus une priorité d'ordonnancement plus élevée.

       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

       S'il  réussit,  setpriority() renvoie la valeur de courtoisie du thread appelant, qui peut
       être un nombre négatif. En cas d'erreur, il renvoie -1 et positionne errno  pour  indiquer
       la cause de l'erreur.

       Puisqu'un appel à 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.

       S'il  réussit,  setpriority()  renvoie  zéro. En cas d'erreur, il renvoie -1 et positionne
       errno pour indiquer la cause de l'erreur.

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

       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É

       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.

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

   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.10 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 ⟨⟩.