如何使用 printf() 打印 ACE_thread_t

发布于 2024-08-11 04:21:54 字数 92 浏览 4 评论 0 原文

ACE_OS::thr_self() 返回 ACE_thread_t。 ACE 记录器有一个开关“\t”来打印它。 如果我想使用printf()打印线程id,我该怎么做?

ACE_OS::thr_self() returns ACE_thread_t. ACE logger has a switch "\t" to print it.
How can I do it if I want to print thread id by using printf()?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柏林苍穹下 2024-08-18 04:21:55

高手? C++?为什么不使用 iostream 而使用 printf 呢?

ACE_thread_t id = ACE_OS::thr_self();
unsigned char content[sizeof(id)];
size_t i;
memcpy(content, &id, sizeof(id) );
for (i=0; i<sizeof(id); ++i) printf("%02X",content[i]);

ACE? C++? Why not use iostream instead of printf?

ACE_thread_t id = ACE_OS::thr_self();
unsigned char content[sizeof(id)];
size_t i;
memcpy(content, &id, sizeof(id) );
for (i=0; i<sizeof(id); ++i) printf("%02X",content[i]);
若水微香 2024-08-18 04:21:54

如果 ACE 没有提供执行此操作的方法,您必须弄清楚它的类型。鉴于它是 ACE,它可能隐藏在嵌套在 5 个 #define 中的 3 个 typedef 后面。头文件 OS_NS_Thread.h 看起来是一个很好的起点。

If ACE doesn't provide a method to do it you have to figure out its type. Given that it is ACE, it is probably hidden behind 3 typedefs nested in 5 #defines. The header file OS_NS_Thread.h looks like as good a starting point as any.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文