8

我需要用 C 语言修改我的程序的进程名称。
我准确地说,这不是我想要更改的线程的名称。
我想更改程序的名称,但我找到的唯一解决方案是修改argv[0].
我还找到了另一个解决方案prctl(PR_SET_NAME, "newname"),但是这个解决方案不起作用。

4

2 回答 2

18

prctl调用和修改的区别在于argv[0]

  • 修改argv[0]更改信息/proc/$pid/cmdline
  • 调用prctl(PR_SET_NAME)更改信息/proc/$pid/status

这意味着您将获得您的进程发出的不同名称ps -aps -ax.

如果您在执行 ps 时希望不同的参数具有相同的进程名称,您可以同时执行它们(即,更改argv[0]和调用prctl)。

希望答案有帮助。

于 2013-06-15T03:53:06.330 回答
-1
于 2014-03-05T11:29:04.000 回答