命名空间
变体
操作

std::fflush

来自 cppreference.cn
< cpp‎ | io‎ | c
 
 
 
 
定义于头文件 <cstdio>
int fflush( std::FILE* stream );

对于输出流(以及上次操作是输出的更新流),将 stream 缓冲区中任何未写入的数据写入到相关的输出设备。

对于输入流(以及上次操作是输入的更新流),行为是未定义的。

如果任何数据被写入到输出设备,从 std::fflush 返回会建立一个可观测的检查点

(自 C++26 起)

如果 stream 是空指针,则上述刷新操作将在所有打开的输出流上执行,包括在库包内或以其他方式程序无法直接访问的输出流。

内容

[编辑] 参数

stream - 要写出的文件流

[编辑] 返回值

成功时返回 0。否则返回 EOF 并设置文件流的错误指示器。

[编辑] 注意

POSIX 扩展了 fflush 的规范,通过定义其对输入流的影响,只要该流代表文件或另一个可寻址的设备:在这种情况下,POSIX 文件指针被重新定位以匹配 C 流指针(有效地撤消任何读取缓冲),并且任何 std::ungetcstd::ungetwc 的效果(尚未从流中读回)将被丢弃。

Microsoft 也扩展了 fflush 的规范,通过定义其对输入流的影响:在 Visual Studio 2013 及更早版本中,它丢弃了输入缓冲区;在 Visual Studio 2015 及更高版本中,它没有效果,缓冲区被保留

[编辑] 参见

打开文件
(函数) [编辑]
关闭文件
(函数) [编辑]
C 文档 关于 fflush