您的位置:首页 > 其它

20145311 《信息安全系统设计基础》第九周学习总结

2016-11-13 16:46 197 查看

20145311 《信息安全系统设计基础》第九周学习总结

教材学习内容总结

系统级I/O


输入输出是在主存和外部设备(如磁盘驱动器、终端和网络)之间拷贝数据的过程
输入操作是从I/O设备拷贝数据到主存,而输出操作是从主存拷贝数据到I/O设备
一个Unix文件就是一个m个字节的序列
打开文件时返回一个小的非负整数,叫做描述符,它在后续对此文件的所有操作中表示这个文件
文件位置是从文件开头起始的字节偏移量
open函数的三个参数(文件名 参数 访问权限位)
read函数从描述符为fd的当前文件位置拷贝最多n个字节到存储器位置buf。返回值-1表示一个错误
返回值0表示EOF,否则返回值表示的是实际传送的字节数量
不足值出现的原因:读时遇到EOF、从终端读文本行、读和写网络套接字
RIO函数可以处理不足值:
1、无缓冲的输入输出函数 2、带缓冲的输入函数
一个文本行就是一个由换行符结尾的ASCII码字符序列
对于内核而言,文本文件和二进制文件毫无区别
内核用三个相关的数据结构来表示打开的文件:
描述符表(每个进程有其独立的描述符表)
文件表(所有进程共享这张表)
v-node表(所有进程共享这张v-node表)
父子进程共享相同的打开文件表集合,因此共享相同的文件位置
对于大多数应用程序而言,标准I/O更简单。然而对标准I/O和网络文件的一些相互不兼容的限制,UnixI/O 比标准I/O更适用于网络应用程序


错误处理


错误处理包装函数:如果没有错误,包装函数的行为和基本函数完全一样
一个独立的头文件(csapp.h)中包含这些包装函数的函数原型
Unix系统中的错误处理:Unix风格、Posix风格、DNS风格 不同风格的错误处理有些许区别


代码调试中的问题和解决过程

一开始在编译练习题中的代码时,会找不到csapp.h这个头文件,后来尝试着从网上下载一个这样的头文件,发现竟然要积分,尴尬,

最后将csapp.h的头文件改成了另外的三个就可以编译通过了







p599代码:从标准输入到标准输出;上一行为自己输入到buffer,下一行为输出



教材10.3



本周代码托管

其他(感悟、思考等,可选)

本周的学习内容主要是系统级I/O,各种系统级的调用还是要靠多实践来掌握,学会使用man -k和grep -nr来进行搜索,学会读注释。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)
目标5000行30篇400小时
第一周100/1001/210/10
第二周150/2002/48/18
第三周200/2501/55/23
第五周50/3001/69/32
第六周20/3201/78/40
第七周20/3401/86/46
第八周60/4001/96/52
第九周80/4801/108/60

参考资料

《深入理解计算机系统V2》学习指导

...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: