从pid获取_complete_进程名称

我在一个内核模块,我想从一个给定的PID有整个进程名称。 确切地说:我想要保存在/ proc / PID / cmdline的行。

问题是, task_struct->comm[]只有15个字节长,如果程序手动或通过setProctitle(3)更改其argv[] ,则不处理…

有任何想法吗? 🙂

你总是可以看看内核是如何做的。 你会看到这个功能:

 proc_pid_cmdline(struct task_struct *task, char * buffer) 

这是相当容易的,但是一旦你有了你感兴趣的进程的task_struct ,你可以使用access_process_vm()mm->arg_start你想要的位。

打开/proc/<pid>/cmdline文件并只读取内容有什么问题?