NICE(2)

NAME
nice - change process priority

SYNOPSIS
#include <unistd.h>

int nice(int inc);

DESCRIPTION
nice() adds inc to the nice value for the calling pid. (A large nice value means a low priority.) Only the superuser may specify a negative increment, or priority increase.

RETURN VALUE
On success, the new nice value is returned (but see NOTES below). On error, -1 is returned, and errno is set appropriately.

ERRORS

EPERM
    The calling process attempted to increase its priority by supplying a negative inc but has insufficient privileges. Under Linux the CAP_SYS_NICE capability is required.

CONFORMING TO
SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. However, the Linux and glibc (earlier than glibc 2.2.4) return value is nonstandard, see below. SVr4 documents an additional EINVAL error code.

NOTES
SUSv2 and POSIX 1003.1-2003 specify that nice() should return the new nice value. However, the Linux syscall and the nice() library function provided in older versions of glibc (earlier than glibc 2.2.4) return 0 on success. In this case, the new nice value can be found using getpriority(2). Since glibc 2.2.4, nice() is implemented as a library function that calls getpriority(2) to obtain the new nice value, and this is returned to the caller as the function result of the nice() call. With this implementation, a successful call can can legitimately return -1. To reliably detect an error, set errno to 0 before the call, and check its value when nice() returns -1.

SEE ALSO
nice(1), fork(2), getpriority(2), setpriority(2), capabilities(7), renice(8)