mhl*_*mhl 10 linux kernel process
我想从中获取完整的进程名称struct task_struct.该comm字段仅存储16个字符,而进程名称可以更长.有没有办法获得完整的进程名称?
这可以通过struct vm_area_struct从中task_struct获取并进一步获取vm_area映射到的文件来完成,但这是不可靠的.
Pau*_*esC 12
你的意思是exe文件名吗?您可以按如下方式获取当前进程的exe:
char *pathname,*p;
mm = current->mm;
if (mm) {
down_read(&mm->mmap_sem);
if (mm->exe_file) {
pathname = kmalloc(PATH_MAX, GFP_ATOMIC);
if (pathname) {
p = d_path(&mm->exe_file->f_path, pathname, PATH_MAX);
/*Now you have the path name of exe in p*/
}
}
up_read(&mm->mmap_sem);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7284 次 |
| 最近记录: |