Linux 终端字符颜色设置
我们在编写程序的时候,通常需要终端对输出显示红色或者绿色等各种颜色,以便更加清楚的对用户做出提示。下面是Linux系统终端颜色的设置方式:
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关,shell,python,perl, C, C++等均可以调用。
转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, 等价于用八进制表示的 33)。
显示格式: \033[显示方式;前景色;背景色m
其中显示方式,前景色或背景色无顺序关系,其中任何一项也不是必须的。
系统默认颜色:\033[0m
显示方式:0(默认)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
前景色:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)
背景色:40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋红)、46(青色)、47(白色)
示范源代码:
- /******************************************************************************
- Copyright by Javacode007, All rights reserved!
- Filename : setcolor.c
- Author : Javacode007
- Date : 2012-8-5
- Version : 1.0
- Description : 设置Linux终端字符颜色
- ******************************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- /* 设置终端为系统默认显示 */
- void set_term_default()
- {
- fprintf(stdout, "\033[0m");
- fflush(stdout);
- }
- /* 设置终端显示方式*/
- void set_term_color(const char* msg, const char* fmt)
- {
- char *pfmt = NULL;
- pfmt = (char*)malloc(sizeof(fmt) + sizeof("\033[m"));
- if(NULL == pfmt)
- {
- printf("Malloc error! File:%s, Line:%d\r\n", __FILE__, __LINE__);
- return;
- }
- strcat(pfmt, "\033[");
- strcat(pfmt, fmt);
- strcat(pfmt, "m");
- printf("Set Terminal Color to: \\033[%sm\r\n", fmt);
- fprintf(stdout, pfmt);
- printf(msg);
- fflush(stdout);
- free(pfmt);
- }
- int main()
- {
- /* 设置终端字体显示为红色高亮,背景色为蓝色*/
- set_term_color("hello,world\r\n", "1;31;44");
- /* 恢复终端字体的系统默认显示*/
- set_term_default();
- printf("hello,world\r\n");
- return 0;
- }
输出效果如下:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。