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

2023-12-21 23:55:44

文章目录

预备知识

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写入的设备就叫文件。
狭义文件:普通的磁盘文件
广义文件:显示器、键盘、网卡、声卡、显卡、磁盘等几乎所有外设,都可以被称之为文件。
所以狭义文件知识广义文件的子集。

文章来源:https://blog.csdn.net/m0_67077469/article/details/135141664
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。