man fflush

名称

        fflush – 冲刷流

概要

        #include <stdio.h>

        int fflush(FILE *stream);

说明

        对于输出流来说,fflush强制写所有用户空间缓冲的数据,或者通过流的底层写函

        数更新流。

        对于跟可做位置偏移操作的文件(比如磁盘,但不能是管道也不能是终端)绑定的

        输入流来说,fflush丢弃所有已经从底层文件获取到但并未被应用程序消费掉的缓

        冲数据。

        流的打开状态不受影响。

        如果参数stream为NULL,则fflush冲刷所有的已打开的流。

        关于非阻塞的实现,参考unlocked_stdio。

返回值

        成功返回0,否则返回EOF并且errno被设置为对应的错误码。

错误

        EBADF 流没有打开,或者没有以写方式打开流。

        fflush也可能会因为write失败而失败,此时errno对应write的错误。

线程安全特征

接口

特征

fflush()

线程安全

多线程安全

标准

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

        POSIX.1-2001并没有规定冲刷一个输入流的实现,但是POSIX.1-2008对此做了规

        定。

注意

        fflush只冲刷由C库实现的用户空间的缓冲。为了保证数据存储到硬盘,必须冲刷

        内核的缓冲,例如调用sync,fsync。

推荐阅读

        fsync,sync,write,fclose,fopen,setbuf,unlocked_stdio

版本记录

        这个页面是Linux man-pages项目4.04版本的一部分。关于该项目的信息和bug

        报道可以在该网站找到:http://www.kernel.org/doc/man-pages/。

                                2015- 03-02

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ta是一个搬运工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值