Поток может быть ограничен (иметь тип PTHREAD_SCOPE_SYSTEM)
или неограничен (иметь тип PTHREAD_SCOPE_PROCESS). Оба
этих типа доступны только в пределах данного процесса. Функция
pthread_attr_setscope()
позволяет создать потоки указанных типов;
pthread_attr_setscope() возвращает 0 - после успешного завершения -
или любое другое значение - в случае ошибки. Пример вызова функции:
pthread_attr_t attr;
pthread_t tid;
void start_routine;
void arg;
int ret;
/* инициализация атрибутов по умолчанию */
ret = pthread_attr_init (&tattr);
/* ограниченное поведение */
ret = pthread_attr_setscope(&tattr,
PTHREAD_SCOPE_SYSTEM);
ret = pthread_create (&tid, &tattr, start_routine,
arg);
pthread_attr_t tattr;
int scope;
int ret;
ret = pthread_attr_getscope(&tattr, &scope);