getpriority(3) (BSD Compatibility Package) getpriority(3)
NAME
getpriority, setpriority - Scheduling-Priorität des Programms
abrufen/setzen
SYNTAX
/usr/ucb/cc [flag ...] file ... -lucb
#include <sys/time.h>
#include <sys/resource.h>
int getpriority(int which, idt who);
int setpriority(int which, idt who, int prio);
BESCHREIBUNG
Die Scheduling-Priorität des Prozesses, der Prozeßgruppe oder des
Benutzers, angegeben durch which und who, wird mit getpriority abgeru-
fen und mit setpriority gesetzt. Die Standardpriorität ist 0; negative
Prioritäten bedeuten ein verbessertes Scheduling.
which ist entweder PRIOPROCESS, PRIOPGRP oder PRIOUSER und who wird
abhängig von which (einer Prozeß-ID für PRIOPROCESS, einer Prozeß-
gruppen-ID für PRIOPGRP und einer Benutzer-ID für PRIOUSER) inter-
pretiert. Ein Nullwert für who bezeichnet den aktuellen Prozeß, die
Prozeßgruppe oder den Benutzer.
Die Standardpriorität prio ist 0; negative Prioritäten bedeuten ein
verbessertes Scheduling. Der Bereich gültiger Prioritätswerte liegt
zwar bei [-20, 20], aufgrund der jeweiligen Implementierung kann die-
ser Bereich jedoch eingeschränkt sein. Wenn der für setpriority()
angegebene Wert unter dem vom System unterstützten Mindestwert für
Prioritäten liegt, wird der vom System unterstützte Mindestwert ver-
wendet. Liegt der Wert über dem vom System unterstützten Maximalwert
für Prioritäten, wird der vom System unterstützte Maximalwert verwen-
det.
Nur ein Prozeß, der über die entsprechenden Berechtigungen verfügt,
kann die Priorität erhöhen (d. h. einen numerisch niedrigeren Priori-
tätswert zuordnen).
RÜCKGABEWERT
Da getpriority legitimerweise auch den Wert -1 zurückgeben kann, muß
die externe Variable errno vor dem Aufruf gelöscht und anschließend
geprüft werden, um festzustellen, ob es sich bei dem Wert -1 um einen
Fehler oder einen zulässigen Wert handelt. Der Aufruf setpriority gibt
0 zurück, wenn kein Fehler vorliegt, und -1, wenn ein Fehler vorliegt.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
getpriority(3) (BSD Compatibility Package) getpriority(3)
FEHLER
getpriority und setpriority können einen der folgenden Fehler zurück-
geben:
ESRCH Es wurde kein Prozeß gefunden, auf den die angegebenen Werte
which und who zutreffen.
EINVAL which war weder PRIOPROCESS, PRIOPGRP noch PRIOUSER.
Zusätzlich zu den oben genannten Fehlern kann setpriority mit einem
der folgenden Fehler fehlschlagen:
EPERM Es wurde ein Prozeß gefunden, jedoch liegt eine der folgen-
den Bedingungen vor:
- Weder die effektive noch die reale Benutzer-ID stimmt mit
der effektiven Benutzer-ID des Aufrufers überein und
weder bei der effektiven noch bei der realen Benutzer-ID
für den Prozeß, der setpriority ausführt, handelt es sich
um die eines berechtigten Benutzers.
- Der Aufruf für getpriority hätte die Priorität eines Pro-
zesses unter den aktuellen Wert herabgesetzt und bei der
effektiven Benutzer-ID für den Prozeß, der den Aufruf
ausführt, handelte es sich nicht um die eines berechtig-
ten Benutzers.
EACCES Über eine Anforderung sollte der Prioritätswert in einen
numerisch niedrigeren Wert geändert werden (d. h. die Prio-
rität sollte erhöht werden), der aktuelle Prozeß verfügt
jedoch nicht über die hierzu erforderlichen Berechtigungen.
HINWEISE
Der Prozeß, der setpriority ausführt, kann ohne die entsprechenden
Berechtigungen des ausführenden Benutzers die Priorität anderer Pro-
zesse nicht auf die eigene Priorität herabsetzen.
SIEHE AUCH
nice(1), renice(1-ucb), fork(2), resource(5), time(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98