Voici une petite fonction que j’utilise lorsque je développe en C sous linux, elle s’appelle de la même façon que printf, la seule différence est que l’affichage dans la console se fait en couleur, et ceci grâce aux « ANSI escape code » et plus précisément aux paramètres Select Graphic Rendition (SGR) :

#include <stdio.h>
#include <stdarg.h>

void esver_debug_red(const char *format, ...)
{
    char buffer[256];
    va_list args;
    va_start (args, format);
    vsnprintf (buffer, sizeof(buffer), format, args);
    printf("\x1B[31m%s\x1B[0m", buffer);
    va_end (args);
}

Cette fonction passe la couleur du texte en rouge, affiche le texte demandé puis repasse à la couleur classique du terminal.

Petites explication sur les couleurs SGR grâce à la chaine %c[31m ;
dans notre exemple nous commençons par afficher le caractère hexa 0x1B qui correspond en ascii au caractère Echap suivit d’un crochet ouvrant.
Vient ensuite la couleur du texte, dans notre cas 31 qui est la couleur rouge.

D’autres couleurs sont possibles pour le texte :
30 Noir
31 Rouge
32 Vert
33 Jaune
34 Bleu
35 Magenta
36 Cyan
37 Blanc
39 Couleur par défaut

On peut aussi rajouter un point virgule et ensuite le code couleur du fond du texte (non présent dans notre cas ) :
40 Noir
41 Rouge
42 Vert
43 Jaune
44 Bleu
45 Magenta
46 Cyan
47 Blanc
49 Couleur par défaut

D’autres options sont disponibles, toujours à séparer par un point virgule :
0 Reset
1 Lumineux ou gras
2 Faible
4 Souligné
7 Image négative
9 Barré

Et il faut ensuite finir par le caractère m qui ferme cette balise couleur.

Et voilà, une belle fonction de débug toute colorisée.

Pour plus d’informations il faut aller sur la page wikipedia des ANSI escape code.

PS: la même fonction est aussi possible en shell avec une commande du type :

echo -e "\x1b[31mVotre texte\x1b[0m"