리눅스 커널에서 task_struct의 하위를 탐색하고 아이들로부터 정보를 얻으려고합니다. 나는 모든 정보에 문제가있어, 간단하게 pid를 얻는 데 계속 사용하자.linux 커널에서 task_struct-> children을 트래킹
이것은 내 코드의 관련 부분입니다.
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 분이 걸리므로 다른 로그를 시도하는 것은 실제로 옵션이 아닙니다.
정말로 재구성이 아닌 문제를 나타내는 실제 코드 샘플을 게시하려면 질문을 편집해야합니다. – caf