C stderr 到一个文件

C stderr to a file

你好,我正在用C写程序,编译后就这样启动了。

/a.out <source.txt >output

我希望所有消息都打印到 output.txt。但是我想将错误发送到控制台,而不是文件。问题是当我在我的代码中使用这个语句时:

freopen( "errors.txt", "w", stderr );
fprintf (stderr, "%s\n", s);

所有错误也会打印到 output.txt 文件而不是 errors.txt 如果有任何帮助,我将不胜感激。

默认情况下,stdoutstderr 一起路由到您的控制台。但是,您可以借助以下命令行形式将错误流重定向到文件:./a.out 2>logfile.log。在这种情况下,stdout 仍会出现在控制台,但 stderr 会进入文件。