getpid : 取得process id,对于thread,就是取得线程对应进程的id;
对应的system call:
asmlinkage long sys_getpid(void)
1614 {
1615 return current->tgid;
1616 }
tgid = thread group id
/////////////////////////////////////////////////////////////////////////
gettid:取得线程id,如果是process,其实就等于getpid:
#define gettid() syscall(__NR_gettid)
对应的system call:
/* Thread ID - the internal kernel "pid" */
1761 asmlinkage long sys_gettid(void)
1762 {
1763 return current->pid;
1764 }
getgid:取得group id,就是user的group id
和用id命令得到的group id是一回事:
bash-3.1$ id
uid=3013(xxx) gid=300(xxxx) groups=300(xxxx),301(platform),505(fpgadrv),9022(gsm)
对于一个thread来说,在kenerl中可以看到他的process id(tgid),还可以看到他的thread id(pid
进程与线程ID获取
本文介绍了在Linux系统中如何通过系统调用获取进程ID(PID)、线程组ID(TGID)及线程ID(TID)。对于进程而言,PID与TID相等;而对于线程,则PID为所属进程的ID,TID为其自身的内核线程ID。
1572

被折叠的 条评论
为什么被折叠?



