如何检查C++是否将std :: cout重定向到文件?

Ego*_*gon 10 c++ terminal redirect iostream cout

我需要我的程序表现不同,具体取决于输出是终端还是文件.如何在C++中找到它?

我假设没有适用于所有操作系统的解决方案.为了我的目的,最好有一个在Windows下工作的策略和一个在linux/unix下工作的策略.

提前致谢.

Dan*_*ple 3

这将在 Linux 下有所帮助:How to Tell if running in a linux console vs an ssh session?

是的,它是一个 C 调用,但它绝对可以从 C++ 调用。

GetStdHandle在 Windows 下给出了类似的起点: