当我从没有参数的终端执行“ python
”时,它会打开 Python 交互式 shell。
当我从终端执行“ cat | python
”时,它不会启动交互模式。不知何故,在没有得到任何输入的情况下,它检测到它已连接到管道。
我将如何在 C 或 C++ 或 Qt 中进行类似的检测?
原文由 Mike McQuaid 发布,翻译遵循 CC BY-SA 4.0 许可协议
当我从没有参数的终端执行“ python
”时,它会打开 Python 交互式 shell。
当我从终端执行“ cat | python
”时,它不会启动交互模式。不知何故,在没有得到任何输入的情况下,它检测到它已连接到管道。
我将如何在 C 或 C++ 或 Qt 中进行类似的检测?
原文由 Mike McQuaid 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以致电 stat(0, &result)
并检查 !S_ISREG( result.st_mode )
。不过,那是 Posix,而不是 C/C++。
原文由 Marc Mutz - mmutz 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答843 阅读✓ 已解决
1 回答2.2k 阅读
1 回答822 阅读✓ 已解决
1 回答701 阅读✓ 已解决
2 回答1.1k 阅读
1 回答1.2k 阅读
1.2k 阅读
使用
isatty
:(在 Windows 上,它们带有下划线前缀:
_isatty
,_fileno
)