标准IO缓存

linux的IO操作学习总结如下:

一、linux对IO文件操作的方式:

1.不带缓存:如open ,read等。这是POSIX标准,在用户空间没有缓存,在内核空间还是将进行缓存。以写数据时为例,先调用write()函数将数据写入内存缓冲区,可能会调用write()多次之后才会将内核空间的缓冲区写满,写满之后或者执行强制写入硬盘操作才会将数据写入磁盘中,写入过程如下:write数据--->内核缓存区--->磁盘。

2.带缓存区:如fopen,fwrite,fget等,是c标准库中定义的。不仅内核空间进行缓存,流也有缓存区。以写操作为例,调用fwrite()将数据写入流缓存中,流缓存写满后调用write()

将数据写入内核缓存区,直到写满内核缓存区或者执行强制写入硬盘操作之后,才进行实际的IO操作。标准IO操作函数fwrite()会调用无缓存操作write().写入过程:fwrite()数据--->流缓存区--->write写入到内核缓存区--->磁盘。

待续……



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值