rust - 是否有一种跨平台的方法来检查 stdout 是否正在通过管道传输到 Rust 中的另一个程序中?
问题描述
当输出通过终端传输到其他地方时,我想禁用颜色。
解决方案
翻译成 POSIX 语言,你的问题是:“is stdout not a TTY”,所以 *nix 上的答案可以通过!isatty(STDOUT_FILENO)
. libc crate 可用于从 Rust 调用它。
在 Windows 上,它很复杂,所以你最好使用atty crate。
[编辑] 您也可以atty
在 Linux 上使用 crate,使其成为跨平台程序的便捷解决方案。
推荐阅读
- python-3.x - 使用 ConfigParser 读取部分下的列表
- c# - 使用第一个 foreach 词干中的元素嵌套 Foreach 语句
- python - 为什么替换功能没有用新列表替换我的列表?
- wordpress - Woocommerce 优惠券允许的电子邮件限制不起作用
- javascript - 使用上下文的问题
- c# - 只有当 ItemsSource 依赖于行时,DataGrid 中的 ComboBox 才会被清空
- mysql - 如何在 MAX() 函数中使用 CASE WHEN 条件
- scala - 通过某些列中的键快速拆分 Spark 数据帧并保存为不同的数据帧
- php - 将自动完成值拆分为 2 个字符串以用于 php 函数
- java - 异步 Lambda 代理集成