Scroll to navigation

NICE(2) Руководство программиста Linux NICE(2)

ИМЯ

nice - изменяет приоритет процесса

ОБЗОР

#include <unistd.h>

int nice(int inc);


Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

nice(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE

ОПИСАНИЕ

nice() добавляет значение аргумента inc к значению относительного приоритета (nice) вызывающего процесса (большее значение nice означает меньший приоритет). Только суперпользователь может задавать отрицательные значения или определять увеличение приоритета. Диапазон значений nice описан в getpriority(2).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении возвращается новое значение nice (но см. ЗАМЕЧАНИЯ далее). В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.

ОШИБКИ

Вызывающий процесс пытается увеличить свой приоритет, указав отрицательное значение inc, но не имеет для этого прав. В Linux для этого требуется мандат CAP_SYS_NICE. (Но см. обсуждение ограничение ресурса RLIMIT_NICE в setrlimit(2).)

СООТВЕТСТВИЕ СТАНДАРТАМ

SVr4, 4.3BSD, POSIX.1-2001. Однако, в Linux и (g)libc (до glibc 2.2.4) возвращалось нестандартное значение, см. далее. В SVr4 описан дополнительный код ошибки EINVAL.

ЗАМЕЧАНИЯ

В SUSv2 и POSIX.1-2001 указано, что nice() должен возвращать новое значение nice. Однако, системный вызов Linux и библиотечная функция nice() в старых версиях (g)libc (до glibc 2.2.4) возвращают 0 при успешном выполнении. Новое значение nice можно определить с помощью getpriority(2).

Начиная с glibc 2.2.4, nice() реализован как библиотечная функция, которая вызывает getpriority(2) для получения нового значения nice для возврата. В этой реализации успешное выполнение может законно вернуть -1. Для надёжного обнаружения ошибки, установите переменную errno в 0 перед вызовом и проверьте её значение, если nice() вернёт -1.

СМОТРИТЕ ТАКЖЕ

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

2007-07-26 Linux