名称

fflush-刷新流

错误说明

EBADF
流不是开放流,或者不是开放用于写入。

fflush()函数也可能会失败,并为write(2)指定的任何错误设置errno。

语法

#包括

int fflush(FILE * stream);

FFLUSH - Linux手册页

Linux程序员手册 第3部分
更新日期: 2017-09-15

另外参见

fsync(2),sync(2),write(2),fclose(3),fileno(3),fopen(3),setbuf(3),unlocked_stdio(3)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

返回值

成功完成后,将返回0。否则,将返回EOF并将errno设置为指示错误。

遵循规范

C89,C99,POSIX.1-2001,POSIX.1-2008。

POSIX.1-2001未指定刷新输入流的行为,但是在POSIX.1-2008中指定了该行为。

备注

请注意,fflush()仅刷新C库提供的用户空间缓冲区。为了确保将数据物理存储在磁盘上,内核缓冲区也必须进行刷新,例如,使用sync(2)或fsync(2)。

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
fflush()Thread safetyMT-Safe

说明

对于输出流,fflush()强制通过给定的输出或更新流,通过该流的底层写函数写入所有用户空间缓冲的数据。

对于与可搜索文件(例如,磁盘文件,但不包括管道或终端)相关联的输入流,fflush()丢弃已从基础文件中获取但尚未被应用程序占用的所有缓冲数据。

流的打开状态不受影响。

如果stream参数为NULL,则fflush()刷新所有打开的输出流。

有关非锁定对象,请参见unlocked_stdio(3)。

日期:2019-08-20 18:00:17 来源:oir作者:oir