Linux——基础IO

1. 预备知识

共识原理:

  1. 文件 = 内容 + 属性

  2. 文件分为 打开的文件 和 没打开的文件

文件要想被打开,必须先被加载到内存中。文件内容、文件属性都要加载进去,

因为CPU只和内存打交道

文件的内容加不加载,取决于是否对文件做读取修改,理想情况二者都要加载
进程 : 打开的文件 = 1 : n

  1. 对于打开的文件:它由谁打开?是进程 !所以本质上,是在研究进程和文件的关系。

  2. 没打开的文件在哪里存放?在磁盘上。

我们最关注什么问题?没有被打开的文件非常多,文件如何被分门别类地放置好,如何存储? 我们要能快速地进行增删查改,快速地找到文件

所以,在操作系统内部,一定存在大量的被打开的文件。

OS要不要管理这些被打开的文件呢?怎么管理? 先描述,再组织。

在内核中,一个被打开的文件,都必须有自己的文件打开对象,其中包含文件的很多属性。

如:struct XXX { 文件属性;struct XXX* next } ;
对文件的管理,就转换成了对链表的增删改查。

一个进程启动后,会默认打开三个输入、输出流,三个输入输出流,最终是以文件的形式打开的。
对应到C语言中,一个程序会打开stdin、stdout、stderr 三个流成员,类型是FlLE*。
Linux下一切皆文件,所以一个进程默认就打开了三个文件。

相关推荐
未济3 天前
linux 配置环境变量
linux
傲世仙尊3 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
_艾伦 耶格尔.3 天前
进程间通信
linux
Liuqy-053 天前
Linux IO编程——静态库、动态库
linux
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅3 天前
linux(8) 软硬链接
linux·运维·服务器
AIgorithmGEEK3 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid
琥珀色糖3 天前
SimlpeHttp
linux·服务器
qeen873 天前
【Linux】操作系统之进程介绍(二)
linux·笔记·学习·进程
Zenova EdgeOS3 天前
Linux ss 工业边缘网络分析实战
linux·python·边缘计算·工业网关