我需要用C语言修改程序的进程名称。 我精确地说,这不是我要更改的线程的名称。 我想更改程序的名称,但是找到的唯一解决方案是修改的值argv[0]。 我还找到了的另一个解决方案prctl(PR_SET_NAME, "newname"),但是该解决方案不起作用。
argv[0]
prctl(PR_SET_NAME, "newname")
调用prctl和修改之间的区别argv[0]是:
prctl
/proc/$pid/cmdline
prctl(PR_SET_NAME)
/proc/$pid/status
这意味着您将获得流程发布ps -a和的不同名称ps -ax。
ps -a
ps -ax
如果在执行ps时期望不同的参数具有相同的进程名称,则可以同时使用它们(即change argv[0]和invoke prctl)。
希望答案有所帮助。