Как я могу получить список процессов детей в коде ядра - PullRequest
5 голосов
/ 20 апреля 2011

Я хочу получить список задач (процессов) дочерних процессов, вот код:

void myFunc()
{
    struct task_struct* current_task;
    struct task_struct* child_task;
    struct list_head children_list;      

    current_task = current;
    children_list = current_task->children;
    child_task = list_entry(&children_list,struct task_struct,tasks);
    printk("KERN_INFO I am parent: %d, my child is: %d \n",
            current_task->pid,child_task->pid);
}

Текущий pid верен, но дочерний pid неверен. Что я делаю не так?

1 Ответ

5 голосов
/ 21 апреля 2011
child_task = list_entry(&children_list,struct task_struct,children);

Обратите внимание, что последний параметр для list_entry должен быть children

Кстати: если вы не очень хорошо знакомы с list_entry, хорошая статья: http://isis.poly.edu/kulesh/stuff/src/klist/

...