ОБЗОР
#include <sys/types.h>
pid_t gettid(void);
Замечание: в glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ
gettid() возвращает идентификатор нити вызвавшего процесса (TID). В случае процесса с одной нитью он эквивалентен идентификатору процесса (PID, возвращаемому getpid(2)). В случае процесса с множеством нитей все нити имеют одинаковый идентификатор процесса PID, но каждый из них имеет уникальный идентификатор нити TID. Для получения подробной информации см. обсуждение CLONE_THREAD clone(2).ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении возвращается идентификатор нити вызывающего процесса.ОШИБКИ
Этот системный вызов всегда выполняется успешно.ВЕРСИИ
Вызов gettid() впервые появился в Linux в ядре версии 2.4.11.СООТВЕТСТВИЕ СТАНДАРТАМ
Вызов gettid() является специфичным для Linux и не должен использоваться в переносимых программах.ЗАМЕЧАНИЯ
В glibc нет обёртки для данного системного вызова; запускайте его с помощью syscall(2).Идентификатор нити, возвращаемый этим вызовом, не является идентификатором нити POSIX (т.е., неясным значением, возвращаемым pthread_self(3)).
В новой группе нитей, созданной вызовом clone(2) без флага CLONE_THREAD (или новый процесс, созданный fork(2)), новый процесс является лидером группы нитей, и ID этой группы нитей (значение, возвращаемое gettid(2)) совпадает с ID этой нити (значение, возвращаемое gettid()).