根据我上一个主题中的评论,我的问题得到了回答,但我需要提出另一个主题:所以我在/ proc / self / exe上使用了readlink,但是如果你想找到可执行文件的路径。缓冲区是你的,对其他任何东西都没有影响。我的问题是,如何更改top / argv [0]显示的可执行文件名。
我无法访问main
功能,因此无法访问argv
答案 0 :(得分:1)
您可以使用prctl
设置top
显示的名称。
#include <sys/prctl.h>
void function()
{
...
prctl(PR_SET_NAME, "new name", 0, 0, 0);
...
}
请注意,这不会更改ps
显示的名称或/proc/<pid>/exe
的内容。此外,它仅更改当前线程的名称,并且最多必须为16个字节。请参阅man prctl
并查找PR_SET_NAME
了解详情。