ACE_OS :: thr_self()返回ACE_thread_t。 ACE記錄器有一個開關「\ t」來打印它。 如何使用printf()打印線程ID?如何使用printf打印ACE_thread_t()
0
A
回答
2
如果ACE沒有提供這樣做的方法,你必須找出它的類型。鑑於它是ACE,它可能隱藏在嵌套在5個#defines中的3個typedef後面。頭文件OS_NS_Thread.h
看起來像一個很好的起點。
1
ACE? 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]);
+0
我不明白你已經使用它memcpy和循環在這裏? – 2017-06-14 05:59:10
相關問題
- 1. 如何用'printf'打印'%'字符?
- 2. 調用的printf打印
- 3. Java printf不打印
- 4. 使用printf打印COLORREF類型變量
- 5. 如何打印出IEEE754號碼(無printf)?
- 6. 如何使用printf打印非空終止的字符串?
- 7. 如何使用printf打印空白字符?
- 8. 如何在c中使用printf來打印整數
- 9. 如何使用fprintf/printf打印出短劃線或點?
- 10. printf()打印垃圾字符
- 11. 打印 '%' 與C的printf/C++
- 12. 如何使printf()正確地從宏內打印二進制blob?
- 13. 如何用printf在C中打印括號?
- 14. 如何打印使用Tcl
- 15. 如何使用JQuery打印
- 16. 如何使用php打印$
- 17. 如何使用AWK打印?
- 18. 如何使用PCL打印
- 19. Gdb,如何使用打印?
- 20. 如何使用printf從字符串數組中打印單個字符?
- 21. 如何使用C和printf函數打印指針內部的內容?
- 22. uthash add malloc strcpy printf打印垃圾值
- 23. c - printf(「%s」)打印一個額外的@
- 24. printf的打印比的陣列
- 25. 爲什麼printf不打印垃圾值?
- 26. C - printf(「%i」)打印一個額外的%
- 27. printf的是打印2個變量
- 28. C printf不在線內打印?
- 29. printf後打印的額外數字
- 30. c printf(「%x」),它打印什麼?
如果'ACE_thread_t'是像'pthread_t'它將歸結爲一個整數( 「%d」 或 「%X」)或指針( 「%P」)。這裏的基本原理是這些是(a)輕量級的,和(b)獨特的。情況可能並非如此。有可能'ACE_thread_t'將是一個複雜的類型。如果它是公開的,你可能可以從中得到id。如果不是,則需要進行一些API調用以獲取實際的線程ID。不過要非常小心,因爲類型可能會有所不同,從平臺到平臺並不保證可移植性。 – quark 2009-11-16 16:36:21
對於「嵌套在5個#define中的3個typedef」+1!這是ACE風格。 – jfly 2014-03-13 03:24:49