文件和文件系统

文件

  • “一切皆是文件”:普通文件、目录、字符设备、块设备、套接字等都是文件
  • 一个数据容器
  • 文件是一个连续的字节序列。
  • 操作系统没有强加任何格式。
  • 磁盘文件中的每个字节都可单独寻址。
  • 文件也是外部设备的统一接口。

文件系统

  • 存储和组织计算机文件和数据的方法。
  • 轻松查找和访问文件。
  • 文件系统可以使用数据存储设备。硬盘、CD-ROM

file

Unix/Linux文件系统与Windows文件系统区别
file

Linux文件系统架构图

在用户空间,可以直接使用应用程序对文件进行打开读写关闭操作

file

在Linux操作系统编程中用到的函数open()、read()
write()、close()等
当用户层发起文件操作请求后,通过VFS(虚拟文件系统)来调用对用的内核函数,内核函数的名称就是在对应用户层函数名字前加了sys


UNIX的操作原语

名称 含义
open 打开一个文件来读、写或创建一个空文件
creat 创建一个空文件
close 关闭以前打开的文件
read 从文件中读取数据
write 将数据写到文件中
lseek 把文件读写指针移动到特定字节
unlink 删除一个文件
remove 删除文件的另一种方式
fcntl 控制文件的属性

文件描述符File Descriptor

内核(kernel)所有打开的文件都需要利用文件描述符。
文件描述符是非负整数
打开现有文件或新建文件时,内核会返回一个文件描述符。
读写文件也需要使用文件描述符来指定待读写的文件。

文件描述符 符号常量 描述
0 STDIN_FILENO 标准输入流
1 STDOUT_FILENO 标准输出流
2 STDERR_FILENO 标准错误流
最后修改:2022 年 03 月 08 日
如果觉得我的文章对你有用,请随意赞赏