NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |STANDARDS |HISTORY |NOTES |SEE ALSO |COLOPHON | |
gettid(2) System Calls Manualgettid(2)gettid - get thread identification
Standard C library (libc,-lc)
#define _GNU_SOURCE#include <unistd.h>pid_t gettid(void);
gettid() returns the caller's thread ID (TID). In a single- threaded process, the thread ID is equal to the process ID (PID, as returned bygetpid(2)). In a multithreaded process, all threads have the same PID, but each one has a unique TID. For further details, see the discussion ofCLONE_THREADinclone(2).
On success, returns the thread ID of the calling thread.
This call is always successful.
Linux.
Linux 2.4.11, glibc 2.30.
The thread ID returned by this call is not the same thing as a POSIX thread ID (i.e., the opaque value returned bypthread_self(3)). In a new thread group created by aclone(2) call that does not specify theCLONE_THREADflag (or, equivalently, a new process created byfork(2)), the new process is a thread group leader, and its thread group ID (the value returned bygetpid(2)) is the same as its thread ID (the value returned bygettid()).
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)
This page is part of theman-pages (Linux kernel and C library user-space interface documentation) project. Information about the project can be found at ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report for this manual page, see ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. This page was obtained from the tarball man-pages-6.15.tar.gz fetched from ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on 2025-08-11. If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up- to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgLinux man-pages 6.15 2025-05-17gettid(2)Pages that refer to this page:kill(1), strace(1), capget(2), clone(2), F_GETSIG(2const), futex(2), getpid(2), get_robust_list(2), ioprio_set(2), PR_SET_NAME(2const), ptrace(2), sched_setaffinity(2), sched_setparam(2), sched_setscheduler(2), seccomp(2), set_tid_address(2), syscalls(2), timer_create(2), tkill(2), id_t(3type), pthread_self(3), sd_event_new(3), proc_pid_status(5), proc_pid_task(5), cgroups(7), cpuset(7), pthreads(7)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |