2009-12-25 14 views

Respuesta

24

Probablemente debería utilizar alguna biblioteca ncurses como para manejar el terminal.

Alternativamente, en Linux se puede utilizar algunas secuencias de escape de la consola tales como:

printf ("\033[32;1m OK \033[0m\n"); 

(en este caso 32 representa verde), pero es portátil ni elegante.

+0

Definitivamente mejor usar la biblioteca - hardwiring secuencias terminales de escape se mal, y los problemas asociados con ella son las razones por las que se inventó la biblioteca de maldiciones (o son una gran parte de la razón). –

63

Utilizo para usar las siguientes macros para agregar color a la salida del terminal.

#define RESET "\033[0m" 
#define BLACK "\033[30m"  /* Black */ 
#define RED  "\033[31m"  /* Red */ 
#define GREEN "\033[32m"  /* Green */ 
#define YELLOW "\033[33m"  /* Yellow */ 
#define BLUE "\033[34m"  /* Blue */ 
#define MAGENTA "\033[35m"  /* Magenta */ 
#define CYAN "\033[36m"  /* Cyan */ 
#define WHITE "\033[37m"  /* White */ 
#define BOLDBLACK "\033[1m\033[30m"  /* Bold Black */ 
#define BOLDRED  "\033[1m\033[31m"  /* Bold Red */ 
#define BOLDGREEN "\033[1m\033[32m"  /* Bold Green */ 
#define BOLDYELLOW "\033[1m\033[33m"  /* Bold Yellow */ 
#define BOLDBLUE "\033[1m\033[34m"  /* Bold Blue */ 
#define BOLDMAGENTA "\033[1m\033[35m"  /* Bold Magenta */ 
#define BOLDCYAN "\033[1m\033[36m"  /* Bold Cyan */ 
#define BOLDWHITE "\033[1m\033[37m"  /* Bold White */ 

... y utilizar como

printf(GREEN "Here is some text\n" RESET); 

Ejemplo de uso Colored grep?

Y por su ejemplo

if(devh == -1) 
{ 
    fprintf(stderr, "Device [ " RED "FAILED" RESET " ]\n"); 
} 
else 
{ 
    fprintf(stderr, "Device [ " GREEN "OK" RESET " ]\n"); 
} 
+2

Gracias por la excelente respuesta – kapil

Cuestiones relacionadas