Lazy loaded image
🥳嵌入式Linux开发
Linux 文件 IO
Words 953Read Time≈ 3 min
2026-9-4
2026-9-4

文件 IO

在 Linux 系统中,一切都是“文件” :普通文件、 驱动程序、网络通信等等。 所有的操作,都是通过“文件 IO”来操作的。所以,很有必要掌握文件操作的常用接口。

1. 文件从哪来?

1.1 针对设备上存储的文件

这些文件以某种格式保存在某个设备上,要先 mount,以 SD卡挂载为例“
  1. sd 卡接入后,串口打印设备计入信息,为mmcblk0 P1 分区
    1. 确认具体接入设备,并挂载设备
      1. 查看设备挂载情况,发现设备已挂载在最后

        1.2 针对内核提供的虚拟文件系统

        查看内核系统,其自动挂载。如何自动挂载要掌握根文件系统知识。
        也可以同样使用挂载命令 mount -t sysfs none /mnt。

        1.3 针对特殊文件-设备节点

        notion image
        哪个驱动由主设备号确定
        哪个硬件由次设备号确定

        2. 怎么访问文件?

        2.1 通用的 IO 模型:open/read/write/lseek/close

        涉及知识点
        1. man 命令查询相关函数帮助,确定引入的头文件
        1. int main(int argc, char** argv) 变长参数
        1. open/read/write/lseek/close 使用

        2.2 不是通用的函数:ioctl/mmap

        在 Linux 中,还可以把一个文件的所有内容映射到内存,然后直接读写内存即可读写文件。

        3. 系统调用函数怎么进入内核?

        notion image

        4. 内核的 sys_open、sys_read 会做什么?

        notion image
        文件 IO.drawio
        上一篇
        Signal 信号处理与 IO 复用
        下一篇
        进程和进程间通信

        Comments
        Loading...