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 语言中更改进程名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何用c语言重命名

在任意二进制文件的 MacOS 上更改进程名称

如何在 C++ 中更改任务管理器上的进程名称?

适用于Android的Visual Studio模拟器:如何更改键盘语言

如何更改 Java 应用程序的进程名称

如何在任务管理器中使用不同的进程名称(对于当前进程)名称?