Android:如何在 C 语言中更改进程名称?
Posted
技术标签:
【中文标题】Android:如何在 C 语言中更改进程名称?【英文标题】:Android: how can I change a process name in C language? 【发布时间】:2015-07-24 03:43:59 【问题描述】:我的 android 程序将启动一个用 C 语言编写的进程。我需要修改这个进程的名字。
我使用了prctl(PR_SET_NAME)
,它改变了/proc/$pid/status
,但/proc/$pid/cmdline
没有改变。
我搜索了一下,发现可以修改argv[0]
的值,但是我不知道如何在Android程序中做到这一点。
【问题讨论】:
修改argv[0]
只能在C程序内部进行。 (argv
是包含 C 程序参数的数组的规范名称,在其 main
函数中。)
总的来说,在进程启动后修改其名称因操作系统而异,而且比较不稳定。您可以创建一个符号链接(使用您最喜欢的名称),然后调用它吗?你确定你需要这样做吗? :-)
致 jpaugh:谢谢你的回答。我的android进程有一个服务,这个服务用c语言创建一个进程。当服务被杀死而其他进程要启动服务时,启动服务会失败,因为c进程与服务进程同名。这就是为什么我必须修改c进程的名称。
好的。那么这才是你真正的问题。您可能想要搜索/询问,因为可能有一种方法可以在不重命名的情况下解决您的问题。我对 Android 服务了解不多,但处理进程元数据可能是一件善变的事情
好的。我问了一个新问题。 ***.com/questions/30207065/…
【参考方案1】:
我使用“environ”指针找到了argv[0]并成功更改了进程名称。
【讨论】:
您好,您能详细说明一下吗?什么是“环境”指针?以上是关于Android:如何在 C 语言中更改进程名称?的主要内容,如果未能解决你的问题,请参考以下文章