Я пишу утилиту командной строки для Linux. Если выход (stdout) подходит к оболочке, было бы неплохо напечатать некоторые экраны для раскраски вывода. Но если выход перенаправляется, эти экраны bash не должны печататься, или содержимое может сломать парсеры, которые полагаются на этот вывод.Определить, перенаправляется ли выход процесса в C/C++
Есть несколько программ, которые делают это (сосать как ack
), но те, что я нашел, были написаны на Perl, и я не мог узнать, как они это сделали.
Я хотел использовать C/C++ для написания моей утилиты.
'isatty()' не является стандартным C, но это POSIX, поэтому он будет доступен на всех Unix-подобных платформах. –
Версия ISO доступна также в Windows. Довольно аккуратно. –