标准库:IO

IO 操作

我们在类 Unix 系统下大多数都是 IO 操作,比如 web 应用、数据库操作、文件读写,Linux 核心思想是把一切当作文件。

IO 操作一般分为两套,一套是操作系统提供的系统 IO,一套是标准库提供的缓冲 IO。

IO 操作不仅仅是读写数据,它提供的是所谓数据流的概念。不要提到 IO 就想到读写文件,很多东西都可以流化,它更像一种设计模式或者模型。数据流的核心是连续性的数据,数据流有的是提供好的,有的是陆续提供的。比如文件是提供好的,读取网络数据是陆续提供的。数据流是有顺序的,当前操作的位置通常称为读写位置或者偏移量。

数据流是可以嵌套的。数据流是生产线上的一系列连续型数据,数据经过不同的加工流水线工位处理。比如把数据流写到文件中,数据流会经过不同的工位进行处理,加密、压缩、用户缓冲 IO、系统 IO 等最后存到文件,读取数据使用相反的方向把数据还原。

换句话说 IO 操作是所谓数据流和工位的概念。

标准库对于 IO 基本操作是什么

大部分语言和标准库里 IO 操作都是非常核心的内容,IO 操作给我们带来很多相关性的扩展。标准库 IO 包抽象一系列的接口,这些接口定义一系列的扩展,有很多不同实现,有标准 IO 操作、有缓冲 IO 操作、网络操作、压缩操作、加密操作。我们把 IO 接口梳理出来的好处是组装一条流水线就知道哪些接口可以放到这个流水线上。

标准库在接口设计上定义了一些最基本的接口类型,这些接口类型只有单个方法,读、写、关闭最基本一种操作。设计的基本原则是接口粒度最小化,如果需要复杂的接口可以把小接口组合起来。为什么提供基本接口?比如接口只提供读操作,这样除了读操作之外其他操作看不到也不需要看到,对于实现方来说它可以通过简单的扩展就能实现这个接口࿰

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值