sched_getcpu(3) определяет ЦП, на котором выполняется вызывающая нить

ОБЗОР

#include <sched.h>
int sched_getcpu(void);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

sched_getcpu():

Начиная с glibc 2.14:
_GNU_SOURCE
До glibc 2.14:
_BSD_SOURCE || _SVID_SOURCE
    /* также достаточно _GNU_SOURCE */

ОПИСАНИЕ

sched_getcpu() возвращает номер центрального процессора, на котором выполняется вызывающая нить.

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

При успешном выполнении sched_getcpu() возвращает неотрицательный номер ЦП. При ошибке возвращается -1 и errno устанавливается в соответствующее значение.

ОШИБКИ

ENOSYS
В данном ядре getcpu(2) не реализован.

ВЕРСИИ

Эта функция доступна в glibc начиная с версии 2.6.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).
ИнтерфейсАтрибутЗначение
sched_getcpu() безвредность в нитяхбезвредно (MT-Safe)

СООТВЕТСТВИЕ СТАНДАРТАМ

sched_getcpu() есть только в glibc.

ЗАМЕЧАНИЯ

Вызов
cpu = sched_getcpu();
эквивалентен следующему вызову getcpu(2):
int c, s;
s = getcpu(&c, NULL, NULL);
cpu = (s == -1) ? s : c;