前一段时间,我asked如何从 Windows 上运行的C ++程序中确定stdout是否指向控制台。我收到了一个有用的答案:GetConsoleMode()。
更新:具体来说,如果stdout指向控制台,则此表达式的计算结果为true:
GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &temp)
现在我正在尝试在 Mac 上解决同样的问题。是否有类似的功能我可以从Mac OS X调用以确定stdout是否指向控制台?
更新:人们建议使用函数isatty(),它接受文件描述符。在Windows的情况下,该描述符是通过调用GetStdHandle(STD_OUTPUT_HANDLE)获得的。我会检查是否可以按照建议拨打isatty(fileno(stdout))
。