如何检查进程是否是我的后代(内核模式)

时间:2015-11-24 13:12:58

标签: c linux-kernel kernel system-calls

假设我处于内核模式,我试着知道带有PID的进程是否是我的后代。

是否有检查功能?或者我应该做一个这样的功能:

PSEUDO CODE:

my_process = get_current(); 
target_process = find_task_by_vpid(PID); 
while (target_process != NULL && target_process != my_process)
   target_process = target_process->parent;
if(target_process!=) //meaning he is one of my kids
    return YES_HE_IS_YOUR_KID;
else
    return NO_HE_IS_YOUR_KID;

1 个答案:

答案 0 :(得分:0)

据我所知,没有内置函数来确定给定的pid是否是当前进程的后代。您应该手动编写该函数。正如您所展示的那样,它相当微不足道,并且不到10行。

请注意。 有时在内核中,没有当前进程。例如,在中断上下文中。所以你需要非常小心。