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

bne*_*ane 3 linux-kernel

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

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

ssize_t do_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos)
Run Code Online (Sandbox Code Playgroud)

Jes*_*mos 8

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

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

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