gpt4 book ai didi

linux - 来自 task_struct 的完整进程名称

转载 作者:IT王子 更新时间:2023-10-29 00:12:01 42 4
gpt4 key购买 nike

我想从 struct task_struct 中获取完整的进程名称。 comm 字段仅存储 16 个字符,而进程名称可以更长。有没有办法获得完整的进程名称?
这可以通过从task_struct获取struct vm_area_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);
}

关于linux - 来自 task_struct 的完整进程名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18658295/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com