跳转至内容

C++ 编程/代码/标准 C 库/函数/fflush

来自维基教科书,开放的书籍,开放的世界
语法
#include <cstdio>
int fflush( FILE *stream );

如果给定的文件流是输出流,则 fflush() 会将输出缓冲区写入文件。如果给定的流是输入类型,则 fflush() 的行为取决于使用的库(例如,一些库会忽略该操作,一些库会报告错误,而另一些库则会清除待处理的输入)。

fflush() 在调试时很有用(例如,如果程序在缓冲区发送到屏幕之前出现段错误),或者它可以用来确保在长时间处理期间部分显示输出。

默认情况下,大多数实现都有stdout在每行末尾传输缓冲区,而stderr在有输出时就会刷新。如果存在重定向或管道,则此行为会发生改变,在这种情况下,调用 fflush(stdout) 有助于保持输出流。

printf( "Before first call\n" );
fflush( stdout );
shady_function();
printf( "Before second call\n" );
fflush( stdout );
dangerous_dereference();
相关主题
fclose - fopen - fread - fwrite - getc - putc
华夏公益教科书