我们经常看到别的屏幕五颜六色的很是羡慕,看着很炫是吧。其实我们也可以自己做一个简单的修改,是我们的显示结果也呈现出不同的颜色。shell脚本可能设置的比较多,但是我们平常使用C语言却很少设置它的颜色,而实际上这个是可以设置的。
格式如下:

\033[字背景颜色;字体颜色m字符串\033[0m

举个例子如下:(为了方便,我自己特意定义了用于两个调试的宏函数, 以后查看debug信息就方便很多了)

#include <stdio.h>

#define COL(x)  "\033[;" #x "m"
#define RED     COL(31)
#define GREEN   COL(32)
#define YELLOW  COL(33)
#define BLUE    COL(34)
#define MAGENTA COL(35)
#define CYAN    COL(36)
#define WHITE   COL(0)
#define GRAY    "\033[0m"

#define errlog(fmt, arg...) do{     \
    printf(RED"#ERROR: Toeny Sun:"GRAY YELLOW" %s:%d "fmt GRAY, __func__, __LINE__, ##arg);\
}while(0)

#define log(fmt, arg...) do{     \
    printf(BLUE"#DEBUG: Toeny Sun: "GRAY YELLOW"%s:%d "fmt GRAY, __func__, __LINE__, ##arg);\
}while(0)


void main(int argc, char **argv)
{
	char *string=NULL;
    struct in_addr ip;
    unsigned char *c=NULL;

    string = "192.168.1.2";
    if( inet_pton(AF_INET, string, &ip)!= 1){
        errlog("inet_pton error\n");
        return -1;
    }
    log("ip.s_addr = %8.8x\n", ntohl(ip.s_addr));

    string = "192.168.1.256";
    if( inet_pton(AF_INET, string, &ip)!= 1){
        errlog("inet_pton error\n");
        return -1;
    }
    log("ip.s_addr = %8.8x\n", ntohl(ip.s_addr));

}

结果如下所示:
Linux上使用设置printf显示的颜色_Linux