您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页基础IO -- 理解文件(1)

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

来源:测品娱乐


一:回顾文件

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

二:加深对文件的理解

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方式 打开文件一致

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务