当前位置: 技术问答>linux和unix
为啥死循环外的printf没法输出内容呢?
来源: 互联网 发布时间:2017-04-23
本文导语: #include int main() { printf("HELLO WOLRD"); while(1){ } } 如上面代码所示,程序可以编译并且执行,但是printf就是没有办法输出,把while死循环去掉就可以了 | printf是带缓冲I/O,那么...
#include
int main()
{
printf("HELLO WOLRD");
while(1){
}
}
如上面代码所示,程序可以编译并且执行,但是printf就是没有办法输出,把while死循环去掉就可以了
|
printf是带缓冲I/O,那么有while(1)时,程序不flush缓冲。而没有while(1)时,程序结束前,要flush缓冲,将内容输出到终端。
|
用fflush(stdin)刷新输入缓冲区,或者输出到stderr:
fprintf(stderr, "HELLO WOLRD");
fprintf(stderr, "HELLO WOLRD");