标准输出及标准错误重定向到一个log文件中

写了一个小测试将标准输出及标准错误重定向到一个log文件中,问题是log文件中有标准错误的信息,而标准输出的信息没有输出到log文件,很纳闷。以下是测试内容:#inclu... 写了一个小测试将标准输出及标准错误重定向到一个log文件中,问题是log文件中有标准错误的信息,而标准输出的信息没有输出到log文件,很纳闷。以下是测试内容:
#include <stdio.h>
int main()
{
while(1)
{
fprintf(stdout,"hello\n");
fprintf(stderr,"word\n");
sleep(1);
}
return 0;
}
./a.out >log 2>&1 &
a.out是编译生成的文件
cat log显示:
word
word
word
word
word
word
这是哪里有问题嘞,想记个日志,容易么我、、、求解
展开
 我来答
kaixingui2012
推荐于2016-06-28 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6390万
展开全部
终于确定了问题!
stderr一般是不带缓冲的
stdout是带缓冲的
#include <stdio.h>
int main()
{
while(1)
{
fprintf(stdout,"hello\n");
fflush(stdout); //必须加上这个,不然,文件输出缓冲区BUFFER满了才会有输出!不能及时看到
fprintf(stderr,"word\n");
sleep(1);
}
return 0;
}
更多追问追答
追答
阅读一下以下文章,你就明白了

http://blog.csdn.net/colegmh/article/details/6940837
追问
3Q
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式