(BSD System Compatibility)
getpriority(3bsd)
getpriority, setpriority --
(BSD) get/set program scheduling priority
Synopsis
/usr/ucb/cc [flag . . . ] file . . .
#include <sys/time.h>
#include <sys/resource.h>
int getpriority(int which, int who);
int setpriority(int which, int who, int prio);
Description
The scheduling
priority of the process, process group, or user, as indicated by
which
and
who
is obtained with
getpriority
and set with
setpriority
The default priority is 0;
lower priorities cause more favorable scheduling.
which
is one of
PRIO_PROCESS,
PRIO_PGRP,
or
PRIO_USER,
and
who
is interpreted relative to
which
(a process identifier for
PRIO_PROCESS,
process group identifier for
PRIO_PGRP,
and a user
ID
for
PRIO_USER).
A zero value of
who
denotes the current process, process group, or user.
getpriority
returns the highest priority (lowest numerical value)
enjoyed by any of the specified processes.
setpriority
sets the priorities of all of the specified processes
to the value specified by
prio.
If
prio
is less than -20, a value of -20 is used;
if it is greater than 20, a value of 20 is used.
Only the privileged user may lower priorities.
Return values
Since
getpriority
can legitimately return the value -1, it is necessary
to clear the external variable
errno
prior to the
call, then check it afterward to determine
if a -1 is an error or a legitimate value.
The
setpriority
call returns 0 if there is no error, or
-1 if there is.
getpriority
and
setpriority
may return one of the following errors:
ESRCH-
No process was located using the
which
and
who
values specified.
EINVAL-
which
was not one of
PRIO_PROCESS,
PRIO_PGRP,
or
PRIO_USER.
In addition to the errors indicated above,
setpriority
may fail with the following error:
EPERM-
A process was located, but one of the following is true:
-
Neither its effective nor real user
ID
matched the effective user
ID
of the caller, and neither the effective
nor the real user
ID
of the process executing the
setpriority
was the privileged user.
-
The call to
getpriority
would have changed a process' priority to a
value lower than its current value,
and the effective user
ID
of the process executing the call was
not that of the privileged user.
References
fork(2),
nice(1),
renice(1),
renice(1Mbsd)
Notices
It is not possible for the process executing
setpriority
to lower any other process down to its current priority,
without requiring privileged user privileges.
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004