2018-2019-1 20165324 《信息安全系统设计基础》第六周学习
教材学习第十章 系统级I/O
-
linux文件是m个字节的序列,所有的I/O设备都被模型为文件,而所有的输入和输出都被当作相应文件的读和写来执行
-
应用接口:
- 打开文件:应用要求内核打开相应的文件。
- linux shell创建进程都有三个打开的文件:标准输入、标准输出、标准错误。
- 改变当前文件的位置。
- 读写文件。
- 关闭文件。
-
文件:每一个linux文件都有一个类型来表示它在系统中的角色:
- 普通文件:包含任意数据,应用程序区分为文本文件和二进制文件,文本文件为只含有ASCII或Unicode字符的普通文件,其余均为二进制文件。
- 目录:是包含一组链接的文件。
- 套接字
-
linux目录层次的一部分:如图
- 打开和关闭文件:调用open函数打开一个已存在的文件或创建一个新文件。
int open(char *filename,int flags,mode_t mode);
- flags参数指明打开文件方式:
- O_RDONLY:只读
- O_WRONLY:只写
- O_RDWR:可读可写
- flags参数提供额外提示;
- O_CREAT:文件不存在,创建一个截断(空)文件
- O_TRUNC:文件已存在就截断它
- O_APPEND:在每次写操作前,设置文件位置到文件的结尾处
- 关闭文件:
int close(fd);
- 读和写文件,调用read和write函数执行输入输出
size_t read(int fd,void *buf,size_t n);
size_t write(int fd,void *buf,size_t n);
- 共享文件:如图
- 标准I/O:C语言定义的一组高级输入输出函数。