是否可以(如果可以,如何?stdout)临时重定向(以及可选的 stderr)到文件,然后恢复原始文件stdout?
在 POSIX 环境中,我使用dupanddup2来存储和替换STDOUT_FILENO. freopen不是一个好的解决方案,因为stdout无法以这种方式恢复。
是否可以使用 Windows API 执行此操作?我相信可以使用类似 POSIX 的函数_DUP和_DUP2. 有没有不涉及他们的解决方案?
在 Windows 上,保留文件名“CON”表示控制台输出流。要在 Windows 上恢复正常的 STDOUT 行为,您需要做的就是调用
freopen("CON","w",stdout);