pthread_setname_np()

Наименовать поток

Прототип:

#include <pthread.h>
int pthread_setname_np( pthread_t tid,
const char *newname );

Аргументы:

tid
Идентификатор потока, который требуется наименовать, или 0, если необходимо наименовать вызывающий поток.
newname
NULL, или NULL-терминированная строка, описывающая новое имя. Максимальная длина строки составляет _NTO_THREAD_NAME_MAX.

Библиотека:

libc

Описание:

Функция pthread_setname_np() устанавливает имя указанного потока в значение newname. Если newname равен NULL, функция удаляет любое имя, уже назначенное потоку. Постфикс «np» в названии функции означает «не-POSIX».

На данный момент эта функция реализована следующим образом:

Только одна программа может иметь доступ для записи к записи процесса в файловой системе /proc в каждый момент времени, поэтому, если другая программа (например, отладчик) уже имеет доступ для записи к ней, pthread_setname_np() завершается с ошибкой EBUSY. По этой причине лучше, чтобы поток задавал свое собственное имя, чем задавал имя другому потоку.

Возвращаемое значение:

EOK
Успешное завершение.
E2BIG
Слишком длинное имя.
EBUSY
Как описано выше, была произведена попытка именовать поток, отличный от вызывающего потока, а другая программа уже имеет права на запись в /proc/pid/as.
EPERM
Недостаточно прав для установки имени.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

pthread_getname_np(), ThreadCtl()




Предыдущий раздел: Описание API системной библиотеки