系统编程之文件IO(二)——文件系统及文件描述符
一、文件编程
文件io:一切皆文件!(VFS)虚拟文件系统
节省成本,把所有数据抽象成文件、有效管理:文件系统
-普通文件:C库函数、API(系统调用)、d目录文件、c/b设备文件(fread、fwrite)、l链接文件(p管道文件、s套接字、f堆栈文件)
#include <stdio.h>
int main()
{
FILE *fp = fopen("/dev/input/mouse0");
int num;
fread(&num, 1, sizeof(num),fp);
printf("num = %d\n",num);
return 0;
}
用户空间:fopen
C库:实现fopen
(
API;
)
内核空间,访问文件
二、文件IO
初级IO:系统调用API
标准IO:库函数
高级IO:高级API
2.1 文件IO重要性
网络、进程、通信都需要文件IO
2.2 根目录
- bin、sbin
- dev
- etc
- lib
- usr/lib、usr/include、usr/sbin、usr/bin
- home
- root
- boot
- proc
- sys
2.3 文件描述符
相当于,每生成一个文件,就有一个id、操作这个id就是操作这个文件
类似:学号
文件ID:
- 动态分配:只要当操作这个文件时,系统才会给你分配文件描述符
- 非负整数:从3编号开始、0,1,2三个文件描述符有其他作用(stdin、stdout、stderr)
100多个API,不看demo背下来
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律