文件的概念
文件是以计算机硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等等。
PS:文件是信息集合
数据项:类似于表格中的一格,如 姓名:XXX
记录:一组相关的数据项,类似于表格中的一行
文件的逻辑结构
- 有结构
顺序文件:文件中的记录顺序排列,记录等长
索引文件:索引表(索引号 | 文件长度 | 文件指针)
索引顺序文件:顺序文件+索引表
- 无结构
将数据顺序组织成记录并保存,通常以字节为单位
文件的基本操作
这里以C语言中的函数为例说明
- 创建文件:先寻找可用空间,后创建目录,fopen()
- 写文件:指定文件名和内容执行系统调用,C语言中的fwrite()
- 读文件:指定文件名和内容执行系统调用,C语言中的fread()
- 删除文件:先删除文件对应的目录项,后回收空间,C语言中的remove()
- 截断文件:将文件内容清空,C语言中的ftruncate()
文件控制块(FCB)
文件控制块用来存放控制文件需要的各种信息的数据结构,也可以称作文件目录项
- 基本信息:文件名、文件物理位置、文件的逻辑结构等
- 存取控制信息:只读,可读,可写等
- 使用信息:文件的建立时间,修改时间
- 索引节点:文件名对应的索引编号
文件目录
- 单级目录:不能重名
- 二级目录:主文件目录+用户文件目录,主文件目录记录了用户名和相应用户目录,用户文件目录记录了用户文件的FCB
- 多级目录:二级目录的推广
- 无环图目录:无环图目录更好的实现了文件共享,每个文件都有个共享计数器记录共享链。
文件共享
:硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
参考这个https://www.cnblogs.com/chenyongmou/p/7221399.html
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建