NAME
getpriority,
setpriority —
get/set program scheduling priority
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/resource.h>
int
getpriority(
int
which,
id_t who);
int
setpriority(
int
which,
id_t who,
int prio);
DESCRIPTION
The scheduling priority of the process, process group, or user, as indicated by
which and
who is obtained with the
getpriority() call and set with the
setpriority() call.
The priority is maintained in a per-process basis and affects scheduling of LWPs
which belong to the process and use the
SCHED_OTHER
scheduling class.
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.
prio is a value in the range -20 to 20. The default
priority is 0; numerically lower priority values cause more favorable
scheduling. A value of 19 or 20 will schedule a process only when nothing at
priority ≤ 0 is runnable.
The
getpriority() call returns the highest priority (lowest
numerical value) enjoyed by any of the specified processes. The
setpriority() call sets the priorities of all of the
specified processes to the specified value. Only the super-user may lower
priority values.
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.
ERRORS
getpriority() and
setpriority() will fail
if:
-
-
- [
EINVAL
]
- which was not one of
PRIO_PROCESS
, PRIO_PGRP
,
or PRIO_USER
.
-
-
- [
ESRCH
]
- No process was located using the
which and who values
specified.
In addition to the errors indicated above,
setpriority() will
fail if:
-
-
- [
EACCES
]
- A non super-user attempted to lower a process priority
value.
-
-
- [
EPERM
]
- A process was located, but neither its effective nor real
user ID matched the effective user ID of the caller.
SEE ALSO
nice(1),
fork(2),
sched(3),
renice(8)
HISTORY
The
getpriority() function call appeared in
4.2BSD.