Sunday, November 17, 2013

ANSI escape code

printf是寫C語言程式Debug的主要方式,
但有時候列印出來時資料過長或是顯示相似,
其實這些都會造成閱讀時的困難。
其實,列印時可以用顏色來區分。
SGR (Select Graphic Rendition) parameterst
常看到的定義如下:
#define DBGLOG_NONE    "\x1b[00m"
#define DBGLOG_GREEN   "\x1b[32m"
#define DBGLOG_CYAN    "\x1b[36m"
#define DBGLOG_PURPLE  "\x1b[35m"
#define DBGLOG_RED     "\x1b[31m"
#define DBGLOG_YELLOW  "\x1b[33m"
依照DBGLOG_GREEN為例子,
\x1b[ 是啟用CSI的意思,
至於30代表所引值可以參考[1]以m做結尾。
此外,to get bold red, use \x1b[31;1m.
簡單來說就是執行31和1的索引值,對照表格可以得到bold red的顏色。
這樣就可以讓printf增加一些色彩。

Reference
[1]http://en.wikipedia.org/wiki/ANSI_escape_code#Colors
[2]http://stackoverflow.com/questions/3219393/stdlib-and-colored-output-in-c

No comments:

Post a Comment

Register Transfer Level Design with Verilog (1) [ebook]

設計程式之所以有趣不外乎是它的千變萬化,同樣的結果卻有不同的寫法。 但這些不同寫法當中也並沒有分誰對誰錯,也沒有制定標準來規範何事該用何解。 這也就是我們設計者的珍貴!! [1] Primitive Instantiations 在Verilog中最基本的邏輯...