如何在C中关闭stdout的缓冲

我想关闭stdout的缓冲,以获得以下代码的确切结果

while(1) { printf("."); sleep(1); } 

代码printf一堆’。’ 只有当缓冲区被填满时

使用fflush(stdout) 。 您可以在每个printf之后调用它来强制缓冲区刷新。

您可以使用setvbuf函数 :

 setvbuf(stdout, NULL, _IONBF, 0); 

上面的链接已被破坏。 这是该function的另一个链接。

  • POSIX

  • C / C ++

您也可以使用setbuf

 setbuf(stdout, NULL); 

这将照顾一切

使用fflush(FILE * stream)和stdout作为参数。

http://www.elook.org/programming/c/fflush.html

你可以做

 write(1, ".", 1); 

代替

 printf(".");