IO
一. IO的基础:
1. 认识内核对象
不允许访问内核设备和内存,但可以通过内核系统函数去访问
对每个内核对象进行编号ID
如果访问内核对象,只能通过ID。
编程模型:
申请得到一个ID,在内核系统函数中使用ID得到对应的内核对象
2. 怎么访问文件
使用函数,传递一个文件,系统打开文件,加载文件数据,返回一个ID。使用函数,传递一个ID得到数据,使用函数传递ID, 告诉系统释放文件。
ID: 文件描述符号。 file description(fd)
每个程序执行的时候都有一个目录,存放打开的文件描述符
3. 每个程序可以默认打开3个文件设备:
0:标准输入
1:标准输出
2:错误输入
4. 操作文件描述符号
size_t write(int fd,
void *buf, //要写入内核对象的数据
size_t size); //写入数据大小
返回: >0 实际写入数据的大小
-1 写入错误
size _t read(int fd,
void * buf, //返回数据的空间
size_t size);//空间大小
返回: >0 实际读取的数据
=0 碰到文件结束符号EOF
-1 读取错误
建议: 0 输入, 1输出, 2 错误
二. 基于文件的描述符号
1. 得到文件描述符号/释放文件描述符号
a. 文件类型
目录文件d
普通文件f
字符设备文件c
块设备文件b
软连接文件l
管道文件p
socket文件
b. 文件的属性
2. 通过文件描述符号读写各种数据
3. 文件描述符号与重定向
浙公网安备 33010602011771号