如何在c++中检查std::cout是否被重定向到文件

How can I check in C++ whether std::cout is redirected to a file?

本文关键字:是否 cout 重定向 文件 std c++ 检查      更新时间:2023-10-16

我需要我的程序表现不同,这取决于输出是到终端还是到文件。我如何在c++中发现这一点?

我认为不存在适用于所有操作系统的解决方案。出于我的目的,最好有一个在Windows下工作的策略和一个在linux/unix下工作的策略。

这将有助于在linux下:如何判断是在linux控制台运行还是在ssh会话中运行?

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

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