NICE(2) System Calls NICE(2)


NAME


nice - change priority of a process

SYNOPSIS


#include <unistd.h>

int nice(int incr);


DESCRIPTION


The nice() function allows a process to change its priority. The
invoking process must be in a scheduling class that supports the nice().


The nice() function adds the value of incr to the nice value of the
calling process. A process's nice value is a non-negative number for
which a greater positive value results in lower CPU priority.


A maximum nice value of (2 * NZERO) -1 and a minimum nice value of 0 are
imposed by the system. NZERO is defined in <limits.h> with a default
value of 20. Requests for values above or below these limits result in
the nice value being set to the corresponding limit. A nice value of 40
is treated as 39.


Calling the nice() function has no effect on the priority of processes or
threads with policy SCHED_FIFO or SCHED_RR.


Only a process with the {PRIV_PROC_PRIOCNTL} privilege can lower the nice
value.

RETURN VALUES


Upon successful completion, nice() returns the new nice value minus
NZERO. Otherwise, -1 is returned, the process's nice value is not
changed, and errno is set to indicate the error.

ERRORS


The nice() function will fail if:

EINVAL
The nice() function is called by a process in a scheduling
class other than time-sharing or fixed-priority.


EPERM
The incr argument is negative or greater than 40 and the
{PRIV_PROC_PRIOCNTL} privilege is not asserted in the effective
set of the calling process.


USAGE


The priocntl(2) function is a more general interface to scheduler
functions.


Since -1 is a permissible return value in a successful situation, an
application wishing to check for error situations should set errno to 0,
then call nice(), and if it returns -1, check to see if errno is non-
zero.

ATTRIBUTES


See attributes(5) for descriptions of the following attributes:


+--------------------+-------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------+
|Interface Stability | Standard |
+--------------------+-------------------+
|MT-Level | Async-Signal-Safe |
+--------------------+-------------------+

SEE ALSO


nice(1), exec(2), priocntl(2), getpriority(3C), attributes(5),
privileges(5), standards(5)


April 1, 2004 NICE(2)