linux-kernel – 在linux内核中遍历task_struct-> children

linux-kernel – 在linux内核中遍历task_struct-> children,第1张

概述我试图遍历 linux内核中的task_struct的子节点并从子节点获取信息.我遇到了所有信息的问题,所以让我们保持简单的pid. 这是我的代码的相关部分. struct list_head * p;struct task_struct ts, *tsk;pid_t tmp_pid;INIT_LIST_HEAD(&ts.children);current = tsk;list_fo 我试图遍历 linux内核中的task_struct的子节点并从子节点获取信息.我遇到了所有信息的问题,所以让我们保持简单的pID.

这是我的代码的相关部分.

struct List_head * p;struct task_struct ts,*tsk;pID_t tmp_pID;INIT_List_head(&ts.children);current = tsk;List_for_each(p,&(tsk->children)){     ts = *List_entry(p,struct task_struct,children);     tmp_pID = ts.pID;     printk("the pID is %d\n",tmp_pID);}

我认为问题在于List_entry但我不知道如何解决它,我能找到的所有例子似乎都是以同样的方式调用它.

这应该打印出所有子PID,而不是我总是得到相同的数字-17 ….它是10 ^ 9或10 ^ 11的数量级.

有人可以帮我从这里出去吗?编译大约需要30分钟,所以尝试记录不同的东西并不是一个真正的选择.

解决方法 你应该使用

List_entry(p,sibling);

List_entry(p,children);

何而且,当你经过孩子们时,你应该锁定taskList_lock.

总结

以上是内存溢出为你收集整理的linux-kernel – 在linux内核中遍历task_struct-> children全部内容,希望文章能够帮你解决linux-kernel – 在linux内核中遍历task_struct-> children所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1025249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存