Я пишу утилиту командной строки для Linux.
Если вывод (stdout) идет в оболочку, было бы неплохо напечатать некоторые экранированные символы, чтобы раскрасить вывод. Но если вывод перенаправляется, эти bash-экранирования не должны печататься, иначе содержимое может нарушить синтаксические анализаторы, которые полагаются на этот вывод.
Есть несколько программ, которые делают это (отстой как ack
), но те, что я нашел, были написаны на Perl, и я не мог узнать, как они это сделали.
Я хотел использовать C / C ++ для написания своей утилиты.