一、文件编程
文件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背下来