【发布时间】:2011-11-09 06:06:35
【问题描述】:
#include<stdio.h>
#include <unistd.h>
int main(){
while(1)
{
fprintf(stdout,"hello-out");
fprintf(stderr,"hello-err");
sleep(1);
}
return 0;
}
在 gcc 中编译这个程序并执行它只打印 hello-err 而不是 hello-out。为什么会这样?有人可以解释它背后的原因吗?
【问题讨论】:
-
您在哪里查看打印的文本?第一个
printf打印到stdout,第二个打印到stderr。在您的情况下,可能是不同的输出流 -
@JimBuck-我正在开发 Fedora linux。
-
@Nekto-我认为 stdout 和 stderr 输出都定向到终端。因为我能够在终端中看到 hello-err。