【发布时间】:2017-06-27 15:21:13
【问题描述】:
我希望我的程序在 stderr 连接到控制台和重定向到文件/管道时具有不同的行为。在 Unix 系统中,我可以只测试 isatty(STDERR_FILENO),但是在 Windows 中我该怎么做呢? MSVCRT 还有一个名为_isatty 的函数,它不能正常工作(例如,Detect NUL file descriptor (isatty is bogus))。我可以调用任何 Windows 或 NT API 来测试它吗?
【问题讨论】:
-
C 和 C++ 是不同的语言。你用哪个?
-
@Olaf:没关系。 Windows API 可以从 C 和 C++ 中使用。在 C 或 C++ 中寻求解决方案是标准做法(没有区别)。
-
@IInspectable:如果这是 WinAPI 的问题,它使用 C 绑定,因此这是一个 C 问题。
-
accepted answer from the question you linked to 有解决方案,只是你需要使用
STD_ERROR_HANDLE而不是STD_OUTPUT_HANDLE)。
标签: c++ c windows winapi console