最近在看《linux内核设计与实现》【陈莉君】,其中关于linux遍历子进程的叙述如下:
struct task_struct *task;
struct list_head *list;
list_for_each(list,¤t->children)
{
task=list_entry(list,structtask_struct,sibling);
}
初次阅读时感觉很不理解,后经细细琢磨,方知原来如此,下面是我个人的理解,以与诸君探讨。
1、进程亲属关系的成员
struct tast_struct {
/* real parent process */
struct task_struct *real_parent;
/* recipient of SIGCHLD, wait4() reports */
struct task_struct *parent;