sched_setparam()

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

Прототип:

#include <sched.h>
int sched_setparam( pid_t pid,
const struct sched_param *param );

Аргументы:

pid
Идентификатор процесса, приоритет которого требуется изменить или 0, чтобы изменить приоритет текущего процесса.
param
Указатель на структуру struct sched_param, поле sched_priority которой содержит приоритет, который необходимо присвоить процессу.

Библиотека:

libc

Описание:

Функция sched_setparam() изменяет приоритет процесса pid на приоритет поля sched_priority структуры struct sched_param, на который указывает параметр param. Если pid равен нулю, изменяется приоритет вызывающего процесса.

Значение поля sched_priority параметра param должно находиться между минимальным и максимальным значениями, возвращаемыми функциями sched_get_priority_max() и sched_get_priority_min().

По умолчанию приоритет процесса и дисциплина планирования наследуются или явно устанавливаются родительским процессом. После запуска дочерний процесс может изменить свой приоритет с помощью данной функции.

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

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EFAULT
Произошел сбой при попытке получить доступ к предоставленным буферам.
EINVAL
Приоритет не является допустимым приоритетом.
EPERM
Вызывающий процесс не имеет достаточных привилегий для установки приоритета.
ESRCH
Процесс pid не существует.

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

POSIX 1003.1 Process Scheduling

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

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

В многопоточной программе sched_setparam() устанавливает параметры планирования для потока 1 в процессе pid или для вызывающего потока, если pid равен 0.

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

struct sched_param, errno, getprio(), pthread_getschedparam(), pthread_setschedparam(), pthread_setschedprio(), sched_getparam(), sched_get_priority_max(), sched_get_priority_min(), sched_getscheduler(), sched_setscheduler(), sched_yield(), setprio()




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