我正在使用我的共享库将 freopen 用于 GUI 应用程序,这样我就可以将调试消息从 stdout 重定向到一个文件
我一直在使用基于 C++ 引用站点片段的代码:
/* freopen example: redirecting stdout */
#include <stdio.h>
int main ()
{
freopen ("myfile.txt","w",stdout);
printf ("This sentence is redirected to a file.");
fclose (stdout);
return 0;
}
这会将 stdout
重定向到 myfile.txt
并最终关闭 stdout
有没有一种方法可以重定向到一个文件,然后有效地删除重定向,这样 stdout
然后像往常一样打印到屏幕而不是用 fclose
关闭它?
最佳答案
不,不是在纯 C 中。如果您可以假设一个特定的系统(例如 POSIX),则可能有选择。
但坦率地说,freopen
是 IMO 的 hack,只需要与预先编写的代码兼容。如果您正在编写新代码,您应该将 FILE *
传递给相关函数并使用 fprintf
而不是 printf
。
关于c - freopen 用于在定向到文件后将输出重定向回标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11228263/