2014-11-26 4 views
0

У меня встроенная целевая система на базе Intel и работает Linux.Как настроить цвет шрифта для xterm в приложении Linux в c

Я видел, что цвет шрифта экрана ядра (экран telnet-консоли) настраивается автоматически. Например, если фоновый цвет консоли xterm светлый, тексты черные, а для панели черного фона - белые.

Я загрузил свое приложение в c и запустил приглашение Linux. Цвет шрифта фиксированный черный, так что я не вижу никаких сообщений printf на черном фоне xterm.

Может ли кто-нибудь сказать мне, как настроить динамическую программу c?

+1

У вас нет, вместо этого вы меняете настройки своего терминала либо для изменения цвета фона, либо для изменения цвета шрифта. –

+0

Возможно, наиболее солидный подход - использование библиотеки 'ncurses' для вывода. Быстрая и грязная [с помощью escape-кодов ANSI] (http://stackoverflow.com/questions/7414983/how-to-use-the-ansi-escape-code-for-outputting-colored-text-on-console) , –

+0

Спасибо за информацию. – windflow

ответ

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 массивов foreground и background являются цветовыми кодами для переднего плана и фона, которые я нашел в таблице на сайте я дал вам.

Удачи :)

+0

Большое спасибо. Очень любезно, что вы дали мне код, поэтому мне очень быстро удалось понять. #define FONT_COLOR_DEFAULT "\ 033 [49m \ 033 [39m \ 033 [0m" fprintf (stdout, FONT_COLOR_DEFAULT); работал на меня. – windflow

+0

Обратите внимание, что '' \ e "' является расширением GCC. –

 Смежные вопросы

  • Нет связанных вопросов^_^