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

НАИМЕНОВАНИЕ

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

БИБЛИОТЕКА

       Библиотека потоков POSIX (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()) Невозможно выделить память.

АТРИБУТЫ

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

СТАНДАРТЫ

       GNU, о чём свидетельствует наличие суффикса «_np» (nonportable) в именах.

ИСТОРИЯ

       glibc 2.3.4.

ПРИМЕЧАНИЯ

       В 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>,       Darima       Kogan
       <silverdk99@gmail.com>,  Max  Is  <ismax799@gmail.com>,  Yuri  Kozlov  <yuray@komyakino.ru>,  Иван Павлов
       <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                   pthread_attr_setaffinity_np(3)