Scroll to navigation

gettid(2) System Calls Manual gettid(2)

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

gettid - получить идентификатор нити

БИБЛИОТЕКА

Стандартная библиотека языка C (libc, -lc)

ОБЗОР

#define _GNU_SOURCE
#include <unistd.h>
pid_t gettid(void);

ОПИСАНИЕ

gettid() возвращает идентификатор нити вызвавшего процесса (TID). В случае процесса с одной нитью он эквивалентен идентификатору процесса (PID, возвращаемому getpid(2)). В случае процесса с множеством нитей все нити имеют одинаковый идентификатор процесса PID, но каждый из них имеет уникальный идентификатор нити TID. Для получения подробной информации см. обсуждение CLONE_THREAD clone(2).

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

При успешном выполнении возвращается идентификатор вызывающей нити.

ОШИБКИ

Этот системный вызов всегда выполняется успешно.

ВЕРСИИ

Системный вызов gettid() впервые появился в ядре Linux 2.4.11. Библиотечная поддержка добавлена в glibc 2.30. (ранние версии glibc не содержали обёрточную функцию для этого вызова, нужно было использовать syscall(2)).

СТАНДАРТЫ

Вызов gettid() является специфичным для Linux и не должен использоваться в переносимых программах.

ПРИМЕЧАНИЯ

Идентификатор нити, возвращаемый этим вызовом, не является идентификатором нити POSIX (т.е., значением с произвольной структурой, возвращаемым pthread_self(3)).

В новой группе нитей, созданной вызовом clone(2) без флага CLONE_THREAD (или новый процесс, созданный fork(2)), новый процесс является лидером группы нитей, и ID этой группы нитей (значение, возвращаемое getpid(2)) совпадает с ID этой нити (значение, возвращаемое gettid()).

СМОТРИТЕ ТАКЖЕ

capget(2), clone(2), fcntl(2), fork(2), get_robust_list(2), getpid(2), ioprio_set(2), perf_event_open(2), sched_setaffinity(2), sched_setparam(2), sched_setscheduler(2), tgkill(2), timer_create(2)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Vladislav <ivladislavefimov@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 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

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

4 декабря 2022 г. Справочные страницы Linux 6.03