【发布时间】:2014-10-26 20:30:16
【问题描述】:
我在 Linux 内核中添加了一个自定义系统调用。现在我想找出发出该系统调用的进程的 ID。 如果我在系统调用中使用current指针,我会得到当前运行进程的信息。它可能不是发出系统调用的实际进程,尤其是在多进程环境中。 例如,在用户空间程序中,我有代码。
int pid = fork();
if(pid < 0) {
<statements>;
} else if(pid == 0) {
mysystemcall();
}
这只是一个插图。现在我们不知道父子进程的执行顺序。在系统调用中,current 指针可能未指向发出该系统调用的父进程的 task_struct。 那么我怎样才能找到那个过程
【问题讨论】:
-
current始终是发出系统调用的进程。见here。
标签: linux linux-kernel system-calls