current->pid && current->tgid
来源:互联网 发布:证券公司软件哪家好 编辑:程序博客网 时间:2024/06/07 23:11
Linux内核编程,能拿到当前任务的pid(current->pid),可如果当前是线程,想拿到创建它的进程的pid,怎么拿呢?
这样: current->signal->pgrp, 不过这个方法仅适用于pthread创建的线程,其它的我没有测试。
最佳的方法是取current->tgid , tgid 即缩写 thread group id。
内核代码判断一个线程是否是线程组的leader也是这个方法:
下句宏定义摘自2.6.9内核 sched.h
#define thread_group_leader(p) (p->pid == p->tgid)
current->signal->pgrp 有另外一个准确的含义:
sched.h中有这么一个函数:
static inline pid_t process_group(struct task_struct *tsk) {
return tsk->signal->pgrp;
}
这说明 current->signal->pgrp 表示进程组的leader id。
当然对于一个线程来说current->signal->pgrp和current->tgid是一致的。
- current->pid && current->tgid
- Linux pid,tgid关系
- current thought
- HttpContext.Current
- HttpContext.Current
- HttpContext.Current
- signal_pending(current)
- current宏
- linux current
- Current vimrc
- Alternating Current
- HttpContext.Current
- HttpContext.Current
- Alternating Current
- Alternating Current
- current宏
- linux中pid gid tgid tid的区别和联系
- get current url in current page
- iphone 中对象之间通讯
- SELECT TOP N 问题
- 跪求 OMA DM协议和系统架构类文档
- TC插件
- C语言函数—数学函数
- current->pid && current->tgid
- list,set,map,数组间的相互转换
- sql 语句去多行重复值查询
- Java中使用绑定变量的方法其好处
- www.diigo.com rocks
- 修改提交的路径后缀名,不同命名空间跳转,避免重复提交token
- Android读取SIM联系人信息
- float在内存中的方式
- VB.NET连接数据库方法大全