Używając C / C ++, w jaki sposób drukujesz na standardowe wyjście, ale tylko jeśli terminal je obsługuje?

Mam program, który loguje rzeczySTDOUT.

Te wpisy dziennika mają skojarzony „poziom dziennika” (debugowanie, ostrzeżenie, informacje itd.) I chciałbym dać użytkownikowi możliwość pokolorowania tego wyjścia, w zależności od poziomu dziennika.

Jaki jest sposób określenia, czySTDOUT jest podłączony do terminala, który jest w kolorze? Jak mogę wtedy wydrukować mój tekst za pomocą kolorów?

Szukam rozwiązania, które obejmuje tylko wywołania C lub C ++. zgadujęcurses (lubncurses) ma coś do złagodzenia tego, ale chciałbym uniknąć jego użycia, aby ograniczyć moje zależności do minimum.

questionAnswers(1)

yourAnswerToTheQuestion