我想将所有内容重定向stderr
到一个文件,该文件在应用程序(游戏)运行的整个过程中也被我的记录器使用。
以下将其从控制台重定向,但它从未出现在我的文件中,并且fclose
在游戏循环结束后使用实际上并没有做任何事情,它通常应该这样做。
freopen(Logger::logFile.c_str(),"a",stderr);
任何关于如何stderr
在游戏循环中输出到文本文件的帮助都会非常有用。
我们可能在这里玩未定义的行为...... 因为你不能使用freopen
将各种东西重定向到同一个文件。
在下面的示例中,根据您关闭的文件,您将编写不同的内容:
#include <stdio.h>
int main ()
{
freopen ("myfile.txt","w",stdout);
printf (" This sentence is redirected to a file.");
// fclose (stdout);
freopen ("myfile.txt","w",stderr);
fprintf (stderr, "This ERRORis redirected to a file.");
//fclose (stderr);
fclose (stdout);
return 0;
}
在这里,您在句子之前写下错误:
This ERRORis redirected to a file.sentence is redirected to a file.
不是很好。我建议你让操作系统为你做这个重定向到同一个文件的工作,例如在 Unix/Linux 中:
./myprog.sh 2>&1