man pages section 2: System Calls

Exit Print View

Updated: July 2014
 
 

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
Committed
MT-Level
Async-Signal-Safe
Standard

See also

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