当我从没有参数的终端执行“ 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 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答784 阅读✓ 已解决
4 回答816 阅读
1 回答889 阅读
1 回答917 阅读
1 回答690 阅读
使用
isatty
:(在 Windows 上,它们带有下划线前缀:
_isatty
,_fileno
)