NICE(2) | Руководство программиста Linux | NICE(2) |
nice - изменяет приоритет процесса
#include <unistd.h>
int nice(int inc);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
nice(): _XOPEN_SOURCE || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE || /* версии glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
Вызов nice() добавляет значение аргумента inc к значению уступчивости (nice) вызвавшей нити (большее значение уступчивости означает меньший приоритет).
Диапазон значений уступчивости: от +19 (низкий приоритет) до -20 (высокий приоритет). Попытки установить значение уступчивости вне этого диапазона срезаются до значения из этого диапазона.
Обычно, только привилегированный процесс может понижать значение уступчивости (т. е., повышать приоритет). Однако начиная с Linux 2.6.12 непривилегированный процесс может понизить значение уступчивости процесса назначения, у которого установлено подходящее мягкое ограничение RLIMIT_NICE; подробности смотрите в getrlimit(2).
При успешном выполнении возвращается новое значение nice (но см. ЗАМЕЧАНИЯ далее). В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
При успешном выполнении с полным основанием может вернуть -1. Для обнаружения ошибки перед вызовом присвойте errno значение 0 и проверьте, что оно не равно нулю после возврата nice() значения -1.
POSIX.1-2001, POSIX.1-2008, SVr, 43BSD. Однако системный вызов и функция (g)libc (до glibc 2.2.4) возвращали нестандартное значение, смотрите далее.
Дополнительную информацию о значении уступчивости смотрите в sched(7).
Замечание: дополнительное свойство «autogroup» из Linux 2.6.38 означает, что значение уступчивости во многих случаях больше не работает как обычно. Подробней смотрите в sched(7).
В POSIX.1 указано, что nice() должен возвращать новое значение уступчивости. Однако, системный вызов Linux при успешном выполнении возвращает 0. Таким же образом поступает обёрточная функция nice() из glibc 2.2.3 и старее.
Начиная с glibc 2.2.4, обёрточная функция nice() из glibc, поступает в соответствии с POSIX.1, вызывая getpriority(2) для получения нового значения уступчивости, которое возвращается вызывающему.
nice(1), renice(1), fork(2), getpriority(2), getrlimit(2), setpriority(2), capabilities(7), sched(7)
2017-09-15 | Linux |