如何在管道时禁用ansi颜色?

时间:2018-05-22 16:57:48

标签: c unix

有没有办法检测程序是否通过管道传输到另一个程序? 因为当我使用ANSI颜色打印彩色字符串时,获取管道 我也想阻止它。 或者有更好的方法来打印颜色吗?

1 个答案:

答案 0 :(得分:3)

某些程序在管道输入时会接受颜色(如less -r)。

但在您的情况下,您可能想知道当前的输出是否为tty,并为此目的使用isatty,并避免在输出不是终端时打印颜色。

您还需要使用filenoFILE*转换为文件描述符。