在Linux / NPTL,线程为某种进程创建的。
我可以看到我的一些过程有一个奇怪的CMDLINE:
cat /proc/5590/cmdline
hald-addon-storage: polling /dev/scd0 (every 2 sec)
你有一个想法,我怎么能做到这一点对我的过程中的每个线程? 这将是对调试非常有帮助。
/我现在调查HAL源
谢谢
在Linux / NPTL,线程为某种进程创建的。
我可以看到我的一些过程有一个奇怪的CMDLINE:
cat /proc/5590/cmdline
hald-addon-storage: polling /dev/scd0 (every 2 sec)
你有一个想法,我怎么能做到这一点对我的过程中的每个线程? 这将是对调试非常有帮助。
/我现在调查HAL源
谢谢
如果你想这样做在便携方式,这东西会在多个Unix变体的工作,有可用的选项非常少。
你所要做的是,来电者进程必须调用exec用argv [0]
参数指向你想在这个过程中输出,看名称,文件名,指向实际的可执行文件。
您可以通过尝试从壳此行为:
exec -a "This is my cute name" bash
这将有一个名为取代当前bash进程"This is my cute name"
。
在C这样做,你可以看看源代码sendmail
或已经被广泛移植,并找出所有需要跨操作系统来支持这种变化的任何其他软件。
某些操作系统有一个setproctitle(3)
API,有些则允许您重写的内容argv [0]
并显示结果。
argv
点为可写的字符串。 只要写东西,对他们说:
#include <string.h>
#include <unistd.h>
int
main(int argc, char** argv)
{
strcpy(argv[0], "Hello, world!");
sleep(10);
return 0;
}
呸..该代码是不是很好,关键是要重复使用ENVIRON(这里argv_buffer)指针:
memset (argv_buffer[0] + len, 0, argv_size - len);
argv_buffer[1] = NULL;
任何更好的主意吗?
正在为不同的线程?