Hi, On Wed, Dec 29, 2010 at 9:30 AM, CP YEH <ntdev74@xxxxxxxxx> wrote: > Hi, > > 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? >From my understanding, this sort of depends on which threading model is being employed. For standard distros (like ubuntu), I believe that getpid returns the tgid, and gettid (aka syscall( 224 )) returns pid of the task struct (which is really a thread id). Dave Hylands _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies