标签: c unix
有没有办法检测程序是否通过管道传输到另一个程序? 因为当我使用ANSI颜色打印彩色字符串时,获取管道 我也想阻止它。 或者有更好的方法来打印颜色吗?
答案 0 :(得分:3)
某些程序在管道输入时会接受颜色(如less -r)。
less -r
但在您的情况下,您可能想知道当前的输出是否为tty,并为此目的使用isatty,并避免在输出不是终端时打印颜色。
isatty
您还需要使用fileno将FILE*转换为文件描述符。
fileno
FILE*