gpt4 book ai didi

winapi - 如何检测输出何时被重定向?

转载 作者:行者123 更新时间:2023-12-02 15:04:02 25 4
gpt4 key购买 nike

我有一个用 C 编写的 Win32 应用程序,可以通过 printf() 将其控制台输出重定向到日志文件。

如果我能拥有我的应用程序就好了。检测它是否是在有或没有重定向“>”的情况下启动的。

有什么想法吗?

最佳答案

汤姆,感谢您的意见。

我做了一些实验,发现这对我有用..

fpost_t pos ;

fgetpos (stdout, & pos) ;

当应用程序的输出重定向到文件时,fgetpos()pos 设置为零。这是有道理的,因为它是为你新打开的 stderr。
编辑:实际上,如果文本已重定向到日志/文件,则返回的值可能是正整数。所以在你的代码中你会有类似 if (pos >= 0) bfRedirected = TRUE;

当应用程序的输出没有被重定向时 - 它会转到控制台设备 - 而不是文件,因此 fgetpos() 会将 pos 设置为 -1。

关于winapi - 如何检测输出何时被重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2087775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com