Manpages - gettid.2

Table of Contents

NAME

gettid - get thread identification

SYNOPSIS

  #define _GNU_SOURCE
  #include <unistd.h>

  pid_t gettid(void);

DESCRIPTION

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 by *getpid*(2)). In a multithreaded process, all threads have the same PID, but each one has a unique TID. For further details, see the discussion of *CLONE_THREAD in *clone*(2).

RETURN VALUE

On success, returns the thread ID of the calling thread.

ERRORS

This call is always successful.

VERSIONS

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).)

CONFORMING TO

*gettid*() is Linux-specific and should not be used in programs that are intended to be portable.

NOTES

The thread ID returned by this call is not the same thing as a POSIX thread ID (i.e., the opaque value returned by *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*()).

SEE ALSO

*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)

COLOPHON

This page is part of release 5.13 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-23 Wed 11:30