NAME
getpriority, setpriority — get or set process priority
SYNOPSIS
#include <sys/resource.h>
int getpriority(int which, int who);
int setpriority(int which, int who, int priority);
DESCRIPTION
getpriority()
returns the priority of the indicated processes.
setpriority()
sets the priority of the indicated processes to
priority.
The processes are indicated by
which
and
who,
where
which
can have one of the following values:
- PRIO_PROCESS
Get or set the priority of the specified process where
who
is the process ID.
A
who
of
0
implies the process ID of the calling process.
- PRIO_PGRP
Get or set the priority of the specified process group where
who
is the process-group ID,
indicating all processes belonging to that process-group.
A
who
of
0
implies the process-group ID of the calling process.
- PRIO_USER
Get or set the priority of the specified user where
who
is the user ID,
indicating all processes owned by that user.
A
who
of
0
implies the user ID of the calling process.
If more than one process is indicated, the value returned by
getpriority()
is the lowest valued priority of all the indicated processes, and
setpriority()
sets the priority of all indicated processes.
priority
is a value from
-20
to
20,
where lower values indicate better priorities.
The default priority for a process is 0.
If the calling process contains more than one thread or
lightweight process (i.e., the
process is multi-threaded) these functions shall apply to all threads or
lightweight processes in the calling process.
The priority specified (or retrieved) is
the same for all threads or lightweight processes in a process.
Negative priorities require appropriate privileges.
RETURN VALUE
getpriority()
returns the following values:
- n
Successful completion.
n
is an integer priority in the range
-20
to
20.
- -1
Failure.
errno
is set to indicate the error.
See WARNINGS below.
setpriority()
returns the following values:
- 0
Successful completion.
- -1
Failure.
errno
is set to indicate the error.
ERRORS
If
getpriority()
or
setpriority()
fails,
errno
is set to one of the following values:
- [EACCES]
The calling process does not have access rights
to change one or more of the indicated processes.
All processes for which access is allowed are still affected.
- [EINVAL]
which
is not one of the choices listed above, or
who
is out of range.
- [EPERM]
The calling process attempted to change the priority of a process
to a smaller priority value without having
appropriate privileges.
- [ESRCH]
Processes indicated by
which
and
who
cannot be found.
WARNINGS
getpriority()
can return
-1
both when it successfully finds a priority of
-1
and when it fails.
To determine whether a failure occurred, set
errno
to
0
before calling
getpriority(),
then examine
errno
after the call returns.
AUTHOR
getpriority()
and
setpriority()
were developed by the University of California, Berkeley.