20145329 《信息安全系统设计基础》第九周学习总结
教材学习内容总结
10.1Unix I/O
- Unix I/O:将设备映射为文件de方式,使得所有的输入和输出能够以一种统一且一致的方式来执行大开文件、改变当前的文件位置、读写文件、关闭文件。
- EOF:end-of-file
10.2打开和关闭文件
- open函数
概念:将filename转换为一个文件描述符,并且返回一个文件描述符数字
函数:open(char *filename,int flags,mode_t mode)
(1)flags可以是以下一个或者多位掩码的或
O_RDONLY:只读
O_WRONLY:只写
O_RDWR:可读可写
O_CREAT:文件不存在是创建一个空文件
O_TRUNC:文件存在就截断它
O_APPEND:写操作前,设置文件位置到文件结尾处
(2)mode:指定新文件的访问权限
10.3读和写文件
- 现不足值得原因:
读时遇到EOF
从终端读文本行
读和写网络套接字
10. 4 用RIO包健壮地读写
RIO包会自动为你处理上文中所述的不足值。
RIO提供了两类不同的函数:
无缓冲的输入输出函数\带缓冲的输入函数RIO的无缓冲的输入输出函数
通过调用rio_readn和rio_writen函数,应用程序可以在存储器和文件之间直接传送数据。如果rio_readn和rio_writen函数被一个从应用信号处理程序的返回中断,那么每个函数都会手动地重启read或write。RIO的带缓冲的输入函数
另一种更好的方法就是调用一个包装函数(rio_readlineb)他从一个内部读缓冲区拷贝一个文本行,当缓冲区变空时,会自动地调用read重新填满缓冲区。
10. 5 读取文件数据
- Stat函数
以一个文件名作为输入,并填写一个stat数据中的各个成员。Fstat函数是相似的,只不过是以文件描述符而不是文件名作为输入。 - St_size
成员包含了文件的字节数大小。St_mode成员则编码了文件访问许可位和文件类型。Unix识别大量不同的文件类型。Unix提供的宏指令根据st_mode成员来确定文件的类型。
10. 6 共享文件
- 内核表示打开的文件:
描述符表
文件表
V-node表
代码调试中的问题和解决过程
本周代码托管截图
其他(感悟、思考等,可选)
感觉学习的差距越来越大了,有的人可以在一周的学习中学会很多知识,有的可能只是匆匆发一篇博客,基本没有掌握什么知识,希望自己能向好的同学看齐。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 50/50 | 1/1 | 20/20 | |
第二周 | 50/100 | 1/2 | 30/50 | |
第三周 | 100/200 | 1/3 | 20/70 | |
第四周 | 0/200 | 0/3 | 20/90 | |
第五周 | 50/250 | 1/4 | 20/110 | |
第六周 | 50/300 | 1/5 | 20/130 | |
第七周 | 0/300 | 1/6 | 20/150 | |
第八周 | 0/300 | 1/7 | 20/170 | |
第九周 | 100/400 | 1/9 | 20/190 |