Namespaces
Variants

fflush

From cppreference.net
< c ‎ | io
定义于头文件 <stdio.h>
int fflush ( FILE * stream ) ;

对于输出流(以及最后一次操作为输出的更新流),将 stream 缓冲区中所有未写入的数据写入到关联的输出设备。

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

如果 stream 是空指针,所有已打开的输出流都会被刷新,包括在程序库包内操作或程序无法直接访问的输出流。

目录

参数

stream - 要写入的文件流

返回值

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

注释

POSIX 扩展了 fflush 的规范 ,定义了其对输入流的影响(只要该流表示文件或其他可寻址设备):在这种情况下,POSIX 文件指针会被重新定位以匹配 C 流指针(这实际上撤销了任何读取缓冲),并且任何尚未从流中读回的 ungetc ungetwc 操作的效果都将被丢弃。

微软还对 fflush 的规范进行了扩展,定义了其对输入流的影响:在 Visual Studio 2013 及更早版本中, 它会丢弃输入缓冲区 ;在 Visual Studio 2015 及更新版本中, 它不会产生任何效果,缓冲区会被保留

参考文献

  • C23 标准 (ISO/IEC 9899:2024):
  • 7.21.5.2 fflush 函数 (p: TBD)
  • C17 标准 (ISO/IEC 9899:2018):
  • 7.21.5.2 fflush 函数 (页: TBD)
  • C11 标准 (ISO/IEC 9899:2011):
  • 7.21.5.2 fflush 函数 (p: 305)
  • C99标准(ISO/IEC 9899:1999):
  • 7.19.5.2 fflush函数(页码:270-271)
  • C89/C90 标准 (ISO/IEC 9899:1990):
  • 4.9.5.2 fflush 函数

参见

打开文件
(函数)
关闭文件
(函数)
C++ 文档 关于 fflush