getpriority, setpriority - get/set program scheduling priority
#include <sys/time.h>
#include <sys/resource.h>
int getpriority(int which
, id_t who
);
int setpriority(int which
, id_t who
, int prio
);
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 process attribute dealt with by these system calls is the same attribute (also known as the "nice" value) that is dealt with by nice(2).
The value 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 for who
denotes (respectively) the calling process, the process group of the calling process, or the real user ID of the calling process.
The prio
argument is a value in the range -20 to 19 (but see NOTES below). with -20 being the highest priority and 19 being the lowest priority. Attempts to set a priority outside this range are silently clamped to the range. The default priority is 0; lower values give a process a higher scheduling priority.
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.
Traditionally, only a privileged process could lower the nice value (i.e., set a higher priority). However, since Linux 2.6.12, an unprivileged process can decrease the nice value of a target process that has a suitable RLIMIT_NICE soft limit; see getrlimit(2) for details.
On success, getpriority() returns the calling thread's nice value, which may be a negative number. On error, it returns -1 and sets errno
to indicate the cause of the error. Since a successful call to 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 -1 is an error or a legitimate value.
setpriority() returns 0 on success. On error, it returns -1 and sets errno
to indicate the cause of the error.
nice(1), renice(1), fork(2), capabilities(7), sched(7)
Documentation/scheduler/sched-nice-design.txt
in the Linux kernel source tree (since Linux 2.6.23)