gettid - スレッドID
を取得する
#define _GNU_SOURCE
#include <unistd.h>
#include <sys/types.h>
pid_t gettid(void);
gettid()
は呼び出し元のスレッド
ID (TID) を返す。
シングルスレッドのプロセスでは、スレッド
ID は (
getpid(2)
が返すプロセス ID (PID)
と等しい。
マルチスレッドのプロセスでは、全てのスレッドは同じ
PID を持つが、
それぞれのスレッドは一意な
TID を持つ。
さらなる詳細は、
clone(2) の
CLONE_THREAD
についての議論を参照すること。
成功の場合、呼び出し元のスレッドのスレッドID
を返す。
このコールは常に成功する。
The
gettid() system call first appeared on Linux in kernel 2.4.11.
Library support was added in glibc 2.30. (Earlier glibc versions did not
provide a wrapper for this system call, necessitating the use of
syscall(2).)
gettid() は Linux 固有であり、
移植を想定したプログラムでは使用すべきではない。
このシステムコールが返すスレッド
ID は POSIX スレッド ID (
pthread_self(3)
が返す曖昧な値)
と同じものではない。
In a new thread group created by a
clone(2) call that does not specify
the
CLONE_THREAD flag (or, equivalently, a new process created by
fork(2)), the new process is a thread group leader, and its thread
group ID (the value returned by
getpid(2)) is the same as its thread ID
(the value returned by
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)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。