标准输出及标准错误重定向到一个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
这是哪里有问题嘞,想记个日志,容易么我、、、求解 展开
#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
这是哪里有问题嘞,想记个日志,容易么我、、、求解 展开
1个回答
展开全部
终于确定了问题!
stderr一般是不带缓冲的
stdout是带缓冲的
#include <stdio.h>
int main()
{
while(1)
{
fprintf(stdout,"hello\n");
fflush(stdout); //必须加上这个,不然,文件输出缓冲区BUFFER满了才会有输出!不能及时看到
fprintf(stderr,"word\n");
sleep(1);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询