【lesson31】学基础IO前的预备知识

文章目录

预备知识

1.文件 = 文件内容 + 文件属性(这是我们很早之前就说过的)

2.对文件的所有操作无外乎:

  • a.对文件的内容进行操作
  • b.对文件的属性进行操作

3.文件在磁盘(硬件)上放着,我们访问文件的流程
先写代码->编译代码->代码形成exe文件->运行exe文件->变成进程->访问文件(本质是谁在访问呢?进程)
用图形象理解:
在这里插入图片描述
进行访问文件需要调用系统接口

要向硬件写入数据,只有谁有权利呢?
没错就是OS(操作系统)

如果普通用户也想写入数据呢?
必须让OS提供接口!

也就是OS中的文件类的系统接口为什么之前没有听说过呢?
使用起来比较难->语言上对这些系统接口做了一下封装,为了让接口更好的使用。->而这就导致了不同的语言封装实现的文件访问接口的使用的语法都不相同->但是封装的都是系统接口。

那么为什么要学习OS层面的文件接口呢?
因为这样的接口只有一套!->为什么呢?因为OS只有一个。

4.显示器是硬件吗?
显示器是硬件。
既然显示器是硬件,我们printf向显示器打印,为什么不会觉得奇怪呢?
printf向显示器打印其实也会一种写入,和磁盘写入写入到文件没有本质区别。

printf向显示器打印为什么也会一种写入呢?
这就不得不谈到Linux的一种设计哲学

5.Linux下一切皆文件
对文件而言文件的操作有:read和write
曾经理解的文件操作也是read和write。
显示器:printf/cout->是一种write
键盘: scanf/cin->是一种read

站在程序的角度,程序加载到内存,让对文件进行操作。
随后站在内存的角度:就是对文件进行I/O(input和output)
在这里插入图片描述
所以什么叫文件呢
站在系统角度能够被input读取或者output写入的设备就叫文件。
狭义文件:普通的磁盘文件
广义文件:显示器、键盘、网卡、声卡、显卡、磁盘等几乎所有外设,都可以被称之为文件。
所以狭义文件知识广义文件的子集。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值