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 -aしているプロセスの名前が異なりますps -ax

ps の実行中に異なる引数に同じプロセス名が必要な場合は、両方を実行できます (つまり、 changeargv[0]と invoke prctl)。

答えが役立つことを願っています。

于 2013-06-15T03:53:06.330 に答える