带缓冲的I/O和不带缓冲的区别及联系

本文详细解释了文件写入过程中的缓存机制,包括不带缓冲和带缓冲的区别。不带缓冲是指直接通过系统调用进行写操作,而带缓冲则是在进程中引入额外的缓冲区来提高I/O效率。

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

EG: fwrite <===> write

不带缓冲的
并不是指内核中不提供缓冲,而是只是单纯的系统调用,不是库函数的调用。只是进程中不提供缓冲功能(内核中还是提供缓冲的)====write

带缓冲的
指进程对输入输出流进行了改进,提供了一个缓冲当fwrite函数网磁盘写数据的时候,先将数据写入缓冲区,达到一定条件时(缓冲区满//刷新缓冲区),这时候将数据一次性送往内核提供的页缓存,再写入磁盘。 相当于双重缓存。

带缓存的会先写入缓冲区,所以带缓存的会比带缓存的写入磁盘的次数少。提高了磁盘的I/O效率,优化了磁盘的写操作,需要及时的将缓冲区数据写入到磁盘中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值