-
Notifications
You must be signed in to change notification settings - Fork 7
gettid(2)
gettid - 스레드 식별자 얻기
#include <sys/types.h>
pid_t gettid(void);
주의: 이 시스템 호출에 대한 glibc 래퍼가 없다. NOTES를 보라.
gettid()
는 호출자의 스레드 ID(TID)를 반환한다. 단일 스레드인 프로세스에서 스레드 ID는 프로세스 ID(getpid(2)가 반환하는 PID)와 같다. 다중 스레드인 프로세스에서 모든 스레드는 PID가 같지만 각각 유일한 TID를 가진다. 더 자세한 내용은 clone(2)의 CLONE_THREAD
논의를 보라.
성공 시 호출 프로세스의 스레드 ID를 반환한다.
이 호출은 항상 성공이다.
리눅스 커널 2.4.11에서 gettid()
시스템 호출이 처음 등장했다.
gettid()
는 리눅스 전용이며 이식성이 있어야 하는 프로그램에서는 사용하지 말아야 한다.
glibc에서 이 시스템 호출의 래퍼를 제공하지 않는다. syscall(2)을 이용해 호출해야 한다.
이 호출이 반환하는 스레드 ID는 POSIX 스레드 ID와 (즉 pthread_self(3)가 반환하는 불투명한 값과) 같은 것이 아니다.
CLONE_THREAD
플래그를 지정하지 않은 clone(2) 호출로 생성한 새 스레드 그룹에서 (또는 그와 동등하게, fork(2)로 생성한 새 프로세스에서) 새 프로세스는 스레드 그룹 리더이며 그 스레드 그룹 ID가 (즉 getpid(2)가 반환하는 값이) 그 스레드 ID와 (즉 gettid()
가 반환하는 값과) 같다.
capget(2), clone(2), fcntl(2), fork(2), getpid(2), get_robust_list(2), ioprio_set(2), perm_event_open(2), sched_setaffinity(2), sched_setparam(2), sched_setscheduler(2), tgkill(2), timer_create(2)
2017-09-15