我有一个要求,我必须从线程ID获取线程名称,或者如果不可能如何获取线程名称。在这里,我不是创建线程。我正在创建库,这个库由应用程序使用,库代码将在应用程序线程上下文中运行,我想在控制台日志中打印线程名称,以便知道日志正在提交此特定线程。这应该使用posix api来实现,以便它可以移植。
提前感谢您的所有投入
答案 0 :(得分:2)
没有这样的东西。但是除了线程ID 之外的信息可能对添加到您的日志很有用,例如调用时间,源代码的文件名以及行号执行调用的地方。
答案 1 :(得分:1)
答案 2 :(得分:0)
没有POSIX api将名称附加到帖子。
在Linux上,你可以prctl(PR_SET_NAME, ...)
。请参阅man prctl
。
答案 3 :(得分:0)
在pthread_getname_np()
中似乎有pthread_setname_np()
和pthread.h
,分别用于获取和设置线程的显示名称。但是,它被条件句所包围,表明它是非标准的GNU扩展。
您可能要检查要编译的pthread.h
,并查看是否已定义函数。如果您的代码需要具有可移植性,请确保将这些调用包含在条件句中。