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