0

我有一个基于英特尔的嵌入式目标系统,Linux 正在运行。

我看到内核命令的屏幕输出字体颜色(在 telnet-console 中)是自动调整的。例如,如果 xterm 控制台背景为浅色,则文本为黑色,而对于黑色背景控制台,文本为白色。

我在 c 中上传了我的应用程序并在 Linux 提示符下运行。字体颜色固定为黑色,因此我在黑色背景 xterm 上看不到任何 printf 消息。

谁能告诉我如何在c程序中动态调整?

4

1 回答 1

0

检查此站点的颜色代码: http: //misc.flogisoft.com/bash/tip_colors_and_formatting

这是一个如何使用它的示例。

#include <stdio.h>

int foreground[] = {
  39, 30, 31, 32, 33, 34,
  35, 36, 37, 90, 91, 92,
  93, 94, 95, 96, 97
};

int background[] = {
  49, 40, 41, 42, 43, 44,
  45, 46, 47, 100, 101, 102,
  103, 104, 105, 106, 107
};

int main() {
  int flen = sizeof(foreground)/sizeof(int);
  int blen = sizeof(background)/sizeof(int);

  char fcolor[10];
  char bcolor[10];

  char dfbcolor[] = "\e[39m\e[49m"; // default foreground and background color

  for (int i = 0; i < flen; i++) {
    for (int j = 0; j < flen; j++) {
      sprintf(fcolor, "\e[%dm", foreground[i]);
      sprintf(bcolor, "\e[%dm", background[j]);
      printf("%s%shello, world%s\n", fcolor, bcolor, dfbcolor);
    }
  }

  return 0;
}

int数组foregroundbackground是我在给你的网站上的表格中找到的前景和背景的颜色代码。

玩得开心 :)

于 2014-11-26T20:09:22.467 回答