根据我上一个主题中的评论,我的问题得到了解答,但我需要提出另一个主题:所以我在/proc/self/exe 上使用了 readlink 但如果您想找到可执行文件的路径。缓冲区是你的,对其他任何东西都没有影响。我的问题是,如何更改 top/argv[0] 显示的可执行文件名称。
我无权访问 main
函数,因此无法访问 argv
最佳答案
您可以使用 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
了解更多详情。
关于linux - 获取指向 argv[0] 的指针,以便我可以更改它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29159130/