2012-12-19 2 views
1

sched.h에서 프로세스의 하위 항목을 유지하는 데 사용되는 "struct list_head children;/* 내 자녀 목록 * /"의 정의는 어디에서 찾을 수 있습니까?
특정 자식에 대한 task_struct에 액세스해야하지만 그 포인터를 얻는 방법을 모르므로 어린이 목록의 필드가 무엇인지 알 수 없습니다 ...
고맙습니다.어린이 목록 - Sched.h - 커널

+0

중 하나를 가리키는 우리는 독자에게 연습으로 남겨, 그것은 커널을 해킹의 즐거움 중 하나입니다. – KevinDTimm

+0

답변 주셔서 감사합니다.이 힌트는? 현재 프로세스 및 해당 부모 프로세스에 대해 나는 task_struct를 찾는 방법을 알고 있지만, 해당 자식 및 그 형제에 대한 작업 구조체에 액세스하는 방법을 알지 못합니다. 그들은 그것이 무엇을 포함하고 있는지조차 모르는 목록에 저장되어 있기 때문에 아무 생각이 없습니다. 감사합니다. – SpyrosR

+0

'include/linux'를 보면, list_head가 정의 된 곳에서 꽤 분명해질 것입니다. :) – KevinDTimm

답변

1

나는 net에 관한 약간의 연구로 해결책을 찾았다 고 생각한다. 나는 이것에 관심이있는 누군가를 위해 그것을 게시한다.

struct task_struct * task;
struct list_head * list;

list_for_each (목록, & 전류> 어린이) {
작업 = LIST_ENTRY (리스트, 구조체의 task_struct, 어린이); 은/* 작업이 지금 현재의 아이들 */
}