【问题标题】:How to disable ansi colors when piping?管道时如何禁用ansi颜色?
【发布时间】:2018-05-22 16:57:48
【问题描述】:

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

【问题讨论】:

标签: c unix


【解决方案1】:

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

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

您还需要使用fileno 将您的FILE* 转换为文件描述符。

【讨论】:

    猜你喜欢
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 2019-05-29
    • 2011-07-28
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多