在Linux中如何检索进行系统调用的进程的pid

时间:2012-05-09 21:40:37

标签: linux-kernel

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

e.g。我正在查看read()调用(同步读取),我认为这是在 fs / read_write.c 中定义的

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

1 个答案:

答案 0 :(得分:8)

在系统调用上下文(调用进程的上下文)中,您可以检查类型为current的全局变量struct task_struct,它包含您可以获得的pid字段来自的pid。

只需执行current->pid即可获取当前任务上下文的pid。

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