Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要用 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 时希望不同的参数具有相同的进程名称,您可以同时执行它们(即,更改argv[0]和调用prctl)。
希望答案有帮助。