NAME

gettid - 스레드 식별자 얻기

SYNOPSIS

#define _GNU_SOURCE
#include <unistd.h>

pid_t gettid(void);

DESCRIPTION

gettid()는 호출자의 스레드 ID(TID)를 반환한다. 단일 스레드인 프로세스에서 스레드 ID는 프로세스 ID(getpid(2)가 반환하는 PID)와 같다. 다중 스레드인 프로세스에서 모든 스레드는 PID가 같지만 각각 유일한 TID를 가진다. 더 자세한 내용은 clone(2)CLONE_THREAD 설명을 보라.

RETURN VALUE

성공 시 호출 스레드의 스레드 ID를 반환한다.

ERRORS

이 호출은 항상 성공이다.

VERSIONS

리눅스 커널 2.4.11에서 gettid() 시스템 호출이 처음 등장했다. glibc 2.30에서 라이브러리 지원이 추가되었다. (그 전 glibc 버전에서는 이 시스템 호출의 래퍼를 제공하지 않아서 syscall(2)을 써야 했다.)

CONFORMING TO

gettid()는 리눅스 전용이므로 이식성이 있어야 하는 프로그램에서는 사용하지 말아야 한다.

NOTES

이 호출이 반환하는 스레드 ID는 POSIX 스레드 ID와 (즉 pthread_self(3)가 반환하는 불투명한 값과) 같은 것이 아니다.

CLONE_THREAD 플래그를 지정하지 않은 clone(2) 호출로 생성한 새 스레드 그룹에서 (또는 그와 동등하게, fork(2)로 생성한 새 프로세스에서) 새 프로세스는 스레드 그룹 리더이며 그 스레드 그룹 ID가 (즉 getpid(2)가 반환하는 값이) 그 스레드 ID와 (즉 gettid()가 반환하는 값과) 같다.

SEE ALSO

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


2021-03-22