系统编程之文件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背下来

posted @ 2022-02-27 09:59  周末不下雨  阅读(23)  评论(0编辑  收藏  举报