社区
Linux_Kernel
帖子详情
如何由pid获得task_struct?
ybmmwjl
2009-08-16 04:50:03
我的内核是ubuntu 2.6的,我想做一个模拟的任务管理器,所以想读取每个进程的task_struct中的信息,但是是在找不到一个能用的函数来获取相应pid的task_struct,在网上找了许久,也没有一个好的办法,希望各位朋友前来相助!
...全文
563
4
打赏
收藏
如何由pid获得task_struct?
我的内核是ubuntu 2.6的,我想做一个模拟的任务管理器,所以想读取每个进程的task_struct中的信息,但是是在找不到一个能用的函数来获取相应pid的task_struct,在网上找了许久,也没有一个好的办法,希望各位朋友前来相助!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ybmmwjl
2009-08-18
打赏
举报
回复
to steedhorse:我正是在研究proc,有些信息实在找不到,当了解到proc的许多信息反而是从task_struct得到的,所以想分析该结构体。
to tornadory:我下载了top源码,看到头大了,并不是所有部分都能看懂,有些code理解不了用了也不知道原理。
to sherlock_lai:这个我也考虑了,呵呵,网上有很多人说用户态不可见。
我又仔细分析了一番,在top命令中,除第一行users,进程部分的TIME+,SHR外,其余信息已搞定,多谢各位!
晨星
2009-08-17
打赏
举报
回复
大多数进程信息都可以通过直接读取/proc得到啊。
sherlock_lai
2009-08-17
打赏
举报
回复
在内核态可以使用find_task_by_pid,我2.6核一直用这个。
用户态就不知道了。
山椒π
2009-08-17
打赏
举报
回复
找个任务管理器程序,分析下源码
pid
_
task
_
struct
_
pid
_link.docx
内核进程命名空间函数内核进程命名空间函数内核进程命名空间函数内核进程命名空间函数内核进程命名空间函数内核进程命名空间函数内核进程命名空间函数内核进程命名空间函数
关于Linux内核进程的遍历
int init_module () {
struct
task
_
struct
*
task
;
struct
list_head *q; list_for_each (q, &init_
task
.
task
s) {
task
= list_entry (q,
struct
task
_
struct
,
task
s); printk ("" "%d\t%d\t%s\n",
task
->
pid
,
task
->parent->
pid
,
task
->comm); } return 0; }
Go语言官方文档学习笔记(第五季)
Go富有表现力,简洁,整洁且高效。它的并发机制使编写程序可以轻松地从多核和联网机器中
获得
最大收益,而其新颖的类型系统则可以实现灵活的模块化程序构造。Go可以快速编译为机器代码,但具有垃圾回收的便利性和运行时反射的功能。它是一种快速的,静态类型的编译语言,感觉就像是一种动态类型的解释语言。Go语言官方文档学习笔记是基于官方文档及个人学习Go的笔记,整理完成的Go语言快速入门课程。第五季内容包括以下十个部分:1-
Struct
s2-
Struct
Fields3-Pointers to
struct
s4-
Struct
Literals5-Arrays6-Slices7-Slices are like references to arrays8-Slice literals9-Slice defaults10-Slice length and capacity课程目录
利用kernel提供的接口打印进程号(
pid
)
c文件print
Pid
.c 代码如下:#include
#include
#include
#include
#include
static __init int print
Pid
(void) //安装模块函数{
struct
task
_
struct
*
task
,*p;
struct
list_head *ps; int count=0; printk(“begin.\n”);
task
=&init_
task
;
通过
pid
查找进程
task
_
struct
结构体
如何通过进程id查找进程的描述符
task
_
struct
?在实际的工作中,我的驱动中需要通过读取写进内存中的进程id值查找对应的进程是否还在运行,或者是已经退出。通过阅读内核代码,内核中已有相应的API函数来供我们使用。下面是我在使用过程中的一些笔记总结。 linux系统上运行的进程可能成百上千的,或者更多,如何能够快速的通过
pid
值反向的查找
task
_
struct
,内核的方法是通过H...
Linux_Kernel
4,438
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章