获取指向argv [0]的指针,以便我可以更改它

时间:2015-03-20 03:52:32

标签: linux argv

根据我上一个主题中的评论,我的问题得到了回答,但我需要提出另一个主题:所以我在/ proc / self / exe上使用了readlink,但是如果你想找到可执行文件的路径。缓冲区是你的,对其他任何东西都没有影响。我的问题是,如何更改top / argv [0]显示的可执行文件名。

我无法访问main功能,因此无法访问argv

1 个答案:

答案 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了解详情。