Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       pthread_attr_setschedparam,   pthread_attr_getschedparam  -  изменяет/возвращает  атрибуты
       параметров планирования из объекта атрибутов нити

LIBRARY

       POSIX threads library (libpthread, -lpthread)

СИНТАКСИС

       #include <pthread.h>

       int pthread_attr_setschedparam(pthread_attr_t *restrict attr,
                                     const struct sched_param *restrict param);
       int pthread_attr_getschedparam(const pthread_attr_t *restrict attr,
                                     struct sched_param *restrict param);

ОПИСАНИЕ

       Функция pthread_attr_setschedparam() изменяет атрибуты параметров планирования  в  объекте
       атрибутов  нити,  на  который  указывает  attr, в значения из буфера, на который указывает
       param. Данными атрибутами определяются параметры планирования  нити,  созданной  с  учётом
       объекта атрибутов нити attr.

       Функция pthread_attr_getschedparam() возвращает атрибуты параметров планирования у объекта
       атрибутов нити, на который указывает attr, в буфер на который указывает param.

       Параметры планирования хранятся в структуре следующего вида:

           struct sched_param {
               int sched_priority;     /* планируемый приоритет */
           };

       Из той структуры видно, что поддерживается только один параметр. Подробности о разрешённых
       диапазонах планируемых приоритетов для каждого алгоритма планирования смотрите в sched(7).

       Для   учёта   значения   параметра,  заданного  pthread_attr_setschedparam(),  при  вызове
       pthread_create(3),  вызывающий  должен  использовать  pthread_attr_setinheritsched(3)  для
       присвоения     атрибуту     inherit-scheduler     объекта    атрибутов    attr    значения
       PTHREAD_EXPLICIT_SCHED.

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

       При успешном выполнении эти функции возвращают 0; при ошибке возвращается ненулевой  номер
       ошибки.

ОШИБКИ

       Функция pthread_attr_setschedparam() может завершиться со следующей ошибкой:

       EINVAL Приоритет,  указанный  в  param,  не имеет смысла при текущей политике планирования
              attr.

       В POSIX.1 также описана ошибка  ENOTSUP  для  pthread_attr_setschedparam().  Это  значение
       никогда  не  возвращается  Linux  (тем  не  менее, в переносимых и новых приложениях нужно
       учитывать возможность возврата этого значения ошибки).

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌───────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ИнтерфейсАтрибутЗначение │
       ├───────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │pthread_attr_setschedparam(),                          │ Безвредность в нитях │ MT-Safe  │
       │pthread_attr_getschedparam()                           │                      │          │
       └───────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       POSIX.1-2001, POSIX.1-2008.

ЗАМЕЧАНИЯ

       Список   алгоритмов   планирования   для   нитей,   поддерживаемых   в  Linux  смотрите  в
       pthread_attr_setschedpolicy(3).

ПРИМЕРЫ

       Смотрите pthread_setschedparam(3).

СМ. ТАКЖЕ

       sched_get_priority_min(2), pthread_attr_init(3), pthread_attr_setinheritsched(3),
       pthread_attr_setschedpolicy(3), pthread_create(3), pthread_setschedparam(3),
       pthread_setschedprio(3), pthreads(7), sched(7)

ПЕРЕВОД

       Русский перевод этой страницы руководства был сделан Alexey, Azamat Hackimov
       <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Kogan, Max Is
       <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.