What? The person asked for Linux specific, and the equivalent of getpid()
. Not BSD or Apple. The answer is gettid()
and returns an integral type. You will have to call it using syscall()
, like this:
#include <sys/types.h>
#include <unistd.h>
#include <sys/syscall.h>
....
pid_t x = syscall(__NR_gettid);
While this may not be portable to non-linux systems, the threadid is directly comparable and very fast to acquire. It can be printed (such as for LOGs) like a normal integer.