20145234黄斐《信息安全系统设计基础》第九周学习总结(课本部分)
课本知识概述
I/O设备(输入input与输出output)是在主存和外部设备之间拷贝数据的过程
1、UNIX I/O
一个UNIX文件就是一个m个字节的序列:B0,B1,……,Bm-1;
执行方式:打开文件(描述符;标准输入(0)、标准输出(1)、标准错误(2))、改变当前文件位置、读写文件、关闭文件
2、打开和关闭文件
进程通过调用open函数来打开一个已存在的文件或创建一个新文件
open函数将filename转换为一个文件描述符,并且返回描述符数字
flags参数表明了进程打算如何访问这个文件
O_RDONLY 只读
O_WRONLY 只写
O_RDWR 可读可写
O_CREAT 若文件不存在,就创建它的一个截断的空文件
O_TRUNC 若文件已存在,就截断他
O_APPEND 在每次操作前,设置文件位置到文件的结尾处
mode参数指定了新文件的访问权限位
最后通过close函数关闭一个已打开的文件
3、读和写文件
程序通过read函数与write函数执行输入与输出
read函数从描述符为fd的当前文件位置拷贝最多n个字节到存储器位置位置buf
write函数从存储器位置buf拷贝至多n个字节到描述符fd的当前文件位置
4、用RIO包健壮地读写
RIO的无缓冲的输入输出函数:通过调用rio_readn和rio_writen函数,应用程序可以在存储器和文件之间直接传送数据
RIO的无缓冲的输入函数:一个文本行就是一个由换行符结尾的ASCII码字符序列;包装函数(rio_readlineb)从内部读缓冲区拷贝一个文本行;
5、读取文件元数据
过程通过调用stat和fstat函数检索关于文件的信息(文件的元数据)
stat函数以一个文件名作为输入
6、共享文件
描述符表、文件表、v-bode表