如何在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作为参数。
你可以做
write(1, ".", 1);
代替
printf(".");