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

ИМЯ
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(), pthread_attr_getaffinity_np() │ Безвредность в нитях │ MT-Safe │
└─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘
СТАНДАРТЫ
Данные функции являются не стандартизированными расширениями 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
или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо
на man-pages-ru-talks@lists.sourceforge.net.
Linux man-pages 6.03 15 декабря 2022 г. pthread_attr_setaffinity_np(3)