linux的C 函数fflush()的相关说明

本文详细解析了fflush()函数的作用及其实现机制,强调该函数仅刷新由C库提供的用户空间缓冲区,并不会直接将数据写入磁盘。要确保数据物理存储于磁盘上,还需使用sync(2)或fsync(2)等函数来刷新内核缓冲区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关参考链接:

https://blog.csdn.net/msdnchina/article/details/99205560

 

在linux命令行中执行man fflush即可。

我的本意是想弄明白fflush()函数是数据的写入目的地是哪里,如下是man fflush结果:

NOTES
       Note that fflush() only flushes the user-space buffers provided by the C library.  To ensure that the data is physically stored on disk the kernel buffers must be flushed too, for example, with sync(2) or fsync(2).
 

从上面的描述看,fflush()的目的地是kernel buffers,也就是file system cache,也就是kernel的 page cache。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值