stdout 与 stderr 的区别
stdout 与 stderr 的区别
一直没有注意 stdout 与 stderr 的区别,以为只是不同的描述方式。看来不是这样的。
- stdout 主要处理的是使用者输出
- stderr 主要处理的错误信息输出
- 相比stdout, stderr没有缓冲设置
将"正常输出"和"错误信息输出"加以分离,可以让程序以不同的方式对待两种不同的输出,例如可以将错误信息显示在控制台上,而正常输出重新定向到某个文件上。
Example
#include <stdio.h>
void main()
{
fprintf(stdout, "from stdout\n");
fprintf(stderr, "from stderr\n");
}
编译成 hello.exe后,执行命令行:
hello.exe > out.txt
那么会发现屏幕输出:
from stderr
同时out.txt中的内容为:
from stdout