Can I get thread ID in user-mode program?

CP YEH ntdev74 at
Wed Dec 29 12:30:37 EST 2010


I would like to know if I can obtain thread id of calling thread. Let
me clarify what I mean by this.

First, here is task_struct from linux kernel code.

struct task_struct {
       struct list_head tasks;
       pid_t pid;
       pid_t tgid;
       struct task_struct *group_leader;  /* threadgroup leader */
       struct list_head thread_group;

I understand that getpid returns tgid and gettid via __NR_gettid
returns tid but according to manpage, it seems to me that it is same
as what I get from getpid().

Man page of gettid:
       gettid() returns the thread ID of the current process.  This is
equal to the
       process ID (as returned by getpid(2)), unless  the  process  is
 part  of  a
       thread  group

However, I would like to obtain pid of task_struct. Is there any way I
can get that information?
Thank you.


More information about the Kernelnewbies mailing list