【发布时间】:2012-12-19 12:44:36
【问题描述】:
在哪里可以找到“struct list_head children; /* list of my children */”的定义,它在 sched.h 中用于保留进程的子进程?
我需要访问 task_struct一个特定的孩子,但我不知道如何获得指向它的指针,而且我不知道孩子列表的字段是什么......
谢谢我提前。
【问题讨论】:
-
我们将此作为练习留给读者,这是破解内核的乐趣之一。
-
好的,感谢您的回答。对此有任何提示吗?对于当前进程及其父进程,我知道如何找到 task_struct,但我不知道如何为其子进程访问任务结构及其兄弟姐妹。我不知道,因为它们存储在一个列表中,我什至不知道它包含什么。谢谢。
-
如果你查看
include/linux,list_head 的定义位置将非常明显:) -
好的。我想我刚刚找到它,位于 list.h 中。它被定义为双向链表,并包含两个指针 next 和 prev。但这对我没有帮助,因为有了这些指针我可以遍历该列表,但我找不到访问其 task_struct 的方法。对此有任何建议吗?再次感谢。;)