日期:2014-05-16  浏览次数:20628 次

定时输出重定向失败
#include <stdio.h>
#include <time.h>
main(){
        while(1){
        printf("Test\n");
        sleep(1);
}
}


生成a.out 
使用命令
./a.out > a
过一段时候之后a中的内容还是空的。这是为什么 ?这个重定向失败了
------解决方案--------------------
printf内容被缓存了。
LZ在printf后面添加一句:

fflush(stdout);


就正常了。
------解决方案--------------------
不加sleep很快缓存就会满,就会写。程序正常退出会,你杀死退出不会。