来自task_struct的完整进程名称

2024-04-15

我想从中获取完整的进程名称struct task_struct. The comm字段仅存储 16 个字符,而进程名称可以更长。有没有办法获得完整的进程名称?
这可以通过获取来完成struct vm_area_struct from task_struct,并进一步获取vm_area映射的文件,但这并不可靠。


你指的是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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自task_struct的完整进程名称 的相关文章

随机推荐