C++ 使用POSIXAPI从线程id获取线程名称

C++ 使用POSIXAPI从线程id获取线程名称,c++,posix,C++,Posix,我有一个要求,我必须从线程id获取线程名称,或者如果不可能,如何获取线程名称。这里我不是在创建线程。我正在创建库,这个库由应用程序使用,库代码将在应用程序线程上下文中运行,我想在控制台日志中打印线程名称,以了解日志正在提交这个特定线程。这应该使用POSIXAPI来实现,因此它应该是可移植的 提前感谢您的所有输入没有POSIX api将名称附加到线程 在Linux上,您可以执行prctl(PR\u SET\u NAME,…)。请参见manprctl没有POSIXAPI将名称附加到线程 在Linux

我有一个要求,我必须从线程id获取线程名称,或者如果不可能,如何获取线程名称。这里我不是在创建线程。我正在创建库,这个库由应用程序使用,库代码将在应用程序线程上下文中运行,我想在控制台日志中打印线程名称,以了解日志正在提交这个特定线程。这应该使用POSIXAPI来实现,因此它应该是可移植的


提前感谢您的所有输入

没有POSIX api将名称附加到线程


在Linux上,您可以执行
prctl(PR\u SET\u NAME,…)
。请参见
manprctl

没有POSIXAPI将名称附加到线程


在Linux上,您可以执行
prctl(PR\u SET\u NAME,…)
。请参阅
manprctl

据我所知,posix线程没有名称,但您可以使用它来存储名称。请参阅以获取示例(不带字符串)。

据我所知,posix线程没有名称,但您可以使用它来存储名称。请参见示例(不带字符串)。

没有这样的东西。但是除了线程id之外,还有一些信息可能对添加到日志中很有用,例如调用的时间、源代码的文件名以及执行调用的行号。

没有这类信息。但是除了线程id之外,还有一些信息可能对添加到日志中很有用,例如调用的时间、源代码的文件名以及执行调用的行号在
pthread.h
中,分别获取和设置线程的显示名称。然而,它被条件所包围,这表明它是一个非标准的GNU扩展


您可能需要检查编译所依据的
pthread.h
,看看是否定义了函数。如果代码需要可移植,请确保将这些调用包含在条件中。

我在
pthread.h
中分别使用了
pthread\u getname\u np()
pthread\u setname\u np()
来获取和设置线程的显示名称。然而,它被条件所包围,这表明它是一个非标准的GNU扩展


您可能需要检查编译所依据的
pthread.h
,看看是否定义了函数。如果您的代码需要可移植,请确保将这些调用包含在条件中。

无论如何,这不是只对当前线程的名称有帮助吗?这不是只对当前线程的名称有帮助吗,不管怎样,你能指定什么是api的或任何链接,我可以找到的信息或线程的至少函数名是线程executing@user519882对不起,一个更好的参考是:你可以指定什么是api的或任何链接,我可以找到的信息或线程的至少函数名是线程executing@user519882很抱歉,更好的参考是: