なるべく簡単なロジックで、おおむね被らないようなIDをスレッドごとに吐けないだろうか、それも同じスレッドなら何度呼び出しても同じIDになるやつ(=キャッシュが要らない)、と思ってこういうのを考えた。 とりあえずコード: #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/syscall.h> pid_t gettid(void) { return syscall(SYS_gettid); } unsigned long long getthreadseq(void) { pid_t tid = gettid(); char fmt[] = "/proc/self/task/%d/stat"; char statpath[sizeof(fmt)+10]; un