注意:stderr是不缓存的,stdout则进行行间缓存。接下来我们看下行间缓存的效果,请参考以下代码:
#include "stdio.h"
#include <unistd.h>
int main(int argc, char** argv)
{
for(int i = 0; i < 5; i++)
{
fprintf(stdout, "This is stdout[%d]", i);
sleep(1);
}
sleep(1);
for(int i = 0; i < 5; i++)
{
fprintf(stderr, "This is stderr[%d]", i);
sleep(1);
}
return 0;
}
#include "stdio.h"
#include <unistd.h>
int main(int argc, char** argv)
{
for(int i = 0; i < 5; i++)
{
fprintf(stdout, "This is stdout[%d]\n", i);
sleep(1);
}
sleep(1);
for(int i = 0; i < 5; i++)
{
fprintf(stderr, "This is stderr[%d]\n", i);
sleep(1);
}
return 0;
}
**上面两端代码就是在打印的时候加上了"\n"而已,但是效果完全不一样 **