当前位置: 首页 > article >正文

基础IO -- 理解文件(1)

目录

一:回顾文件

二:加深对文件的理解

1.概念

2.以w写方式打开

3.以a追加方式打开

4.重定向


一:回顾文件

以前学习过在C语言中的文件操作, 但那根本是不足以理解文件的,即站在语言角度是不可能理解文件的

我们要进行文件操作时,前提是我们的程序跑起来了

文件打开和关闭,是CPU在执行我们的代码

二:加深对文件的理解

1.概念

打开文件,本质上就是进程打开文件!!!

即struct task_struct 和struct XXX(文件结构)之间一定存在着两种对象之间的指针关系

文件没有被打开的时候,那它存在哪里呢?? --->  在磁盘上存在

一个进程是可以打开多个文件的,而系统内部也可以存在很多进程  --->  因此在很多情况下,操作系统内部一定存在大量的被打开的文件

所有在OS需要将这些被打开的文件进程管理起来 ---> 先描述,再组织

(因此可以大概猜到每一个被打开的文件,在OS内部,一定要存在对应的描述文件属性的结构类似PCB!)

像PCB一般,把一个文件打开就创建一个结构,然后将其用链表串起来,最后对打开文件的管理就变成了对链表的增删查改

如果我们在磁盘上新建一个大小为0的文件,什么都不写,此时这个文件会不会占据磁盘空间呢???  --->   会的,因为其存在的各种属性也是数据,也会占据一定的空间

即文件 = 属性 + 内容

2.以w写方式打开

打开方式为 w

1.如果不存在,就在当前路径下,新建指定的文件

2.若存在,默认打开文件的时候,就会先把目标文件清空

3.以a追加方式打开

即 appending  追加,不会清空文件,而是在后面追加内容

4.重定向

echo ... > xxx文件  即 重定向操作

输出重定向一定是文件操作

每次写入文件内容都是新的,与以w方式打开文件方式一样(先清空,后写入)

通过这个特性,可以将 echo > 符号做出两个新的用途

1.创建新文件:

2.清空文件:

echo ... >> xxx 追加重定向  即与以 a方式 打开文件一致


http://www.kler.cn/a/349113.html

相关文章:

  • 使用tgz包下载安装clickhouse低版本
  • BERT--详解
  • 嵌入式Linux:信号掩码
  • 写一篇assignment的感悟
  • Python爬虫之正则表达式于xpath的使用教学及案例
  • Flutter资源管理(四)
  • LeetCode209.长度最小的子数组
  • 基于yolov8、yolov5的烟雾检测系统(含UI界面、训练好的模型、Python代码、数据集)
  • 【Vue】Vue2(7)
  • QT QML 练习4
  • 弘景光电:光学科技产品代表企业,创业板IPO即将上会
  • JavaScript object(2)
  • Java_EE(反射技术)
  • vue | 基础
  • 算法中并查集中的rank数组有什么用
  • Servlet的HttpServletRequest
  • python机器学习(手写数字识别)
  • 【Go初阶】两万字快速入门Go语言
  • 弘景光电:以创新为翼,翱翔光学科技新蓝海
  • 基于Langchain框架下Prompt工程调教大模型(LLM)[输入输出接口、提示词模板与例子选择器的协同应用