3

我试图了解系统调用在 Linux 内核中是如何工作的。我的一个问题是,如何检索进行系统调用的进程的 pid?

例如,我正在查看我认为在fs/read_write.cread()定义为的调用(同步读取)

ssize_t do_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos)
4

1 回答 1

8

在系统调用上下文(这是调用进程的上下文)中,您可以检查current类型为struct task_structthis的全局变量,该变量包含pid您可以从中获取 pid 的字段。

只需current->pid获取您所在的当前任务上下文的 pid。

我假设您的意思是内核中定义的系统调用的实际代码。

于 2012-05-09T21:51:49.227 回答