Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       pthread_attr_setaffinity_np,  pthread_attr_getaffinity_np  -  изменяет/возвращает  атрибут
       увязывания ЦП из объекта атрибутов нити

LIBRARY

       POSIX threads library (libpthread, -lpthread)

СИНТАКСИС

       #define _GNU_SOURCE             /* Смотрите feature_test_macros(7) */
       #include <pthread.h>

       int pthread_attr_setaffinity_np(pthread_attr_t *attr,
                          size_t cpusetsize, const cpu_set_t *cpuset);
       int pthread_attr_getaffinity_np(const pthread_attr_t *attr,
                          size_t cpusetsize, cpu_set_t *cpuset);

ОПИСАНИЕ

       Функция pthread_attr_setaffinity_np() изменяет  атрибут  маски  увязывания  ЦП  в  объекте
       атрибутов   нити,   на  который  указывает  attr,  в  значение  cpuset.  Данным  атрибутом
       определяется маска увязывания ЦП у нити, созданной с учётом объекта атрибутов нити attr.

       Функция pthread_attr_getaffinity_np() возвращает атрибут маски увязывания  ЦП  из  объекта
       атрибутов нити, на который указывает attr, в буфер на который указывает cpuset.

       В  аргументе  cpusetsize указывается длина буфера (в байтах), на который указывает cpuset.
       Обычно, этот аргумент должен задаваться как sizeof(cpu_set_t).

       Дополнительную  информацию  по  маскам  увязывания  ЦП  смотрите  в  sched_setaffinity(2).
       Описание набора макросов, которые можно использовать для просмотра и изменения наборов ЦП,
       смотрите в CPU_SET(3).

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

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

ОШИБКИ

       EINVAL (pthread_attr_setaffinity_np())  В  cpuset  указан ЦП, который находится вне набора
              поддерживаемых ядром (в параметре сборки ядра CONFIG_NR_CPUS определён диапазон для
              набора,  поддерживаемого  типом данных ядра, который используется для представления
              наборов ЦП).

       EINVAL (pthread_attr_getaffinity_np()) ЦП в маске увязывания из объекта атрибутов нити, на
              который  указывает  attr,  находится  вне диапазона, задаваемого cpusetsize (т. е.,
              cpuset/cpusetsize слишком мал).

       ENOMEM (pthread_attr_setaffinity_np()) Невозможно выделить память.

ВЕРСИИ

       These functions are provided since glibc 2.3.4.

АТРИБУТЫ

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

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

СТАНДАРТЫ

       Данные  функции  являются  не стандартизированными расширениями GNU, о чём свидетельствует
       наличие суффикса «_np» (nonportable).

ЗАМЕЧАНИЯ

       В glibc 2.3.3 версии этих функций не имеют аргумента cpusetsize. Вместо него размер набора
       ЦП, передаваемый используемым системным вызовам, всегда равен sizeof(cpu_set_t).

СМ. ТАКЖЕ

       sched_setaffinity(2),    pthread_attr_init(3),    pthread_setaffinity_np(3),    cpuset(7),
       pthreads(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⟩.