Provided by:
manpages-fr_1.67.0-1_all 
NOM
getpriority, setpriority - Lire / é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 fixée avec setpriority.
Which doit être l’un des éléments 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 à 20 (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 a bénéficié l’un des processus indiqué. La
fonction setpriority fixe la priorité des processus indiqués à la
valeur fournie. Seul le Super-User 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 une
valeur -1 indique une erreur ou une priorité légitime. L’appel
setpriority renvoie 0 s’il réussit, ou -1 s’il échoue et remplit errno.
ERREURS
ESRCH Aucun processus ne correspond aux valeurs de which et who
indiquées.
EINVAL Which n’était ni PRIO_PROCESS, ni PRIO_PGRP, ni PRIO_USER.
De plus setpriority peut échouer pour les erreurs suivantes :
EPERM Un processus correspond bien aux valeurs indiquées, mais ni
l’UID réel, ni l’UID effectif de l’appelant ne lui
correspondent.
EACCES Tentative de favoriser un processus sans être Super-User.
NOTES
Les détails concernant la condition d’erreur EPERM dépendent du
système. La description ci-dessus concerne ce que dit SUSv3, et qui
semble être suivi par tous les systèmes de type SysV. Linux demande
que l’UID réel ou effectif de l’appelant correspondent à l’UID réel du
processus who (et non pas à son UID effectif). Tous les systèmes de
type BSD (SunOS 4.1.3, Ultrix 4.2 BSD 4.3, FreeBSD 4.3, OpenBSD-2.5...)
demandent que l’UID effectif de l’appelant corresponde à l’UID réel ou
effectif du processus who.
Le véritable intervalle des priorités varie suivant les versions du
noyau. Sur les systèmes Linux antérieure au 1.3.36 l’intervalle
s’étendait de -infini à 15. Depuis le 1.3.43 il correspond à -20..19,
et l’appel-système getpriority renvoie 40..1 pour ces valeurs (puisque
les nombres négatifs sont des codes d’erreur). La routine de
bibliothèque convertit N en 20-N.
L’inclusion <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 <sys/time.h>).
CONFORMITÉ
SVr4, BSD 4.4 (Cette fonction est apparue dans BSD 4.2).
VOIR AUSSI
nice(1), fork(2), renice(8).
TRADUCTION
Christophe Blaess, 1996-2003.