Man page - getpriority(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro

Manual

getpriority

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
NOTES
Différences entre bibliothÚque C et noyau
BOGUES
VOIR AUSSI
TRADUCTION

NOM

getpriority, setpriority - Lire et Ă©crire la prioritĂ© d’ordonnancement du processus

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

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.

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 l’erreur.

Puisqu’un appel Ă  getpriority () peut tout Ă  fait renvoyer la valeur -1 , il faut effacer errno avant l’appel afin de vĂ©rifier si -1 indique une erreur ou une prioritĂ© lĂ©gitime.

S’il rĂ©ussit, setpriority () renvoie 0 . En cas d’erreur, il renvoie -1 et positionne errno pour indiquer l’erreur.

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.

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001, 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 avant Linux 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

L’appel systĂšme getpriority renvoie les valeurs de courtoisie traduites dans l’intervalle 40..1, puisqu’une valeur nĂ©gative renvoyĂ©e serait interprĂ©tĂ©e comme une erreur. La fonction enveloppe de la glibc autour de getpriority () traduit la valeur en sens inverse, selon la formule unice = 20 - knice (ainsi, l’intervalle 40..1 renvoyĂ© par le noyau correspond Ă  celui -20..19 vu depuis 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)

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