2018-2019-1 20165327 《信息安全系统设计基础》第六周学习总结
第十章学习知识点
- 了解系统调用及错误处理方法
- 理解IO处理及文件系统
- 掌握Unix/Linux系统级I/O:open close read write seek stat;掌握I/O重定向的方法
一、了解系统调用及错误处理方法
1、输入输出操作
输入操作:是从I/O设备复制数据到主存
输出操作:从主存复制数据
输入输出是相对于主存来讲的。
二、理解IO处理及文件系统
1、Unix I/O
所有的I/O设备都被模型化为 文件 ,而所有的输入和输出都被当做对相应文件的读和写来执行。
Linux shell创建的每个进程开始时都有三个 ** 打开 ** 的文件:标准输入(描述符为0,STDIN_FILENO)、标准输出(描述符为1,STDOUT_FILENO)、标准错误(描述符为2,STDERR_FILENO)。
2、文件:每个Linux文件都有一个类型来表明他在系统中的角色:
- 普通文件包含任意数据
应用程序常常要区分文本文件和二进制文件
文本文件:是只含有ASCII或Unicode字符的普通文件
二进制文件:其他所有文件
对内核而言,两种文件没有区别 - 目录:是包含一组链接的文件
- 套接字:是用来与另一个进程进行跨网络通信的文件
3、目录层次结构中的位置用路径名来指定。路径名是一个字符串,包括一个可选斜杠,其后紧跟文件名,文件名之间用斜杠分隔。
- 绝对路径名:以一个斜杆开始,表示从根节点开始的路径。
- 相对路径名:以文件名开始,表示从当前工作目录开始的路径。
三、掌握Unix/Linux系统级I/O:open close read write seek stat;掌握I/O重定向的方法
I/O重定向的方法
linux>ls>foo.txt 将标准输出重定向到磁盘文件foo.txt。
#include <unisted.h>
int dup2(int oldfd,int newfd);
复制描述符表项oldfd到描述符表表项newfd,覆盖描述符表项newfd以前的内容。如果newfd已经打开了,dup2会在复制oldfd之前关闭newfd。