nice()

Изменить приоритет процесса

Прототип:

#include <unistd.h>
int nice( int incr );

Аргументы:

incr
Значение, которое необходимо добавить к приоритету процесса.

Библиотека:

libc

Описание:

Функция nice() позволяет изменить приоритет процесса. Вызывающий процесс должен относиться к классу планирования, поддерживающему данную операцию.


Note: Данная функция не влияет ни на одну политику планирования, поддерживаемую ЗОСРВ «Нейтрино». Следует использовать sched_setparam(), pthread_setschedparam() или pthread_setschedprio() вместо данной функции.

Функция nice() добавляет значение incr к nice-значению вызывающего процесса. nice-значение процесса - неотрицательное значение; чем больше это значение, тем меньше приоритет процессора для процесса.

Максимальное значение nice - 2 * NZERO - 1, минимальное значение - 0, эти значения определяются системой. NZERO определено в <limits.h> со стандартным значением 20. Если запрашивается значение выше или ниже этих пределов, значение nice устанавливается в соответствующих границах. Значение nice 40 рассматривается как 39. Только процесс с правами суперпользователя может понизить значение nice.

Возвращаемое значение:

Новое nice-значение минус NZERO. Если возникла ошибка, функция возвращает -1, приоритет потока не меняется, код ошибки записывается в errno.

Коды ошибок:

EINVAL
Функция nice() вызвана для процесса, класс планирования которого отличается от разделяемого по времени.
EPERM
Аргумент incr отрицательный или превышает 40, и эффективный идентификатор пользователя вызывающего процесса не равен суперпользователю.

Классификация:

POSIX 1003.1 X/Open Systems Interfaces Extension

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Предостережения:

Поскольку -1 является допустимым возвращаемым значением в успешной ситуации, приложение, желающее проверить наличие ошибок, должно установить errno в 0, затем вызвать nice(), и если она вернет -1, проверить значение errno.

Тематические ссылки:

execl(), execle(), execlp(), execlpe(), execv(), execve(), execvp(), execvpe(), pthread_setschedparam(), pthread_setschedprio(), sched_setparam()

nice в Справочнике по Утилитам




Предыдущий раздел: Описание API системной библиотеки