20145314郑凯杰《信息安全系统设计基础》第9周学习总结 PART B
2016-11-13 21:41
337 查看
20145314郑凯杰《信息安全系统设计基础》第9周学习总结 PART B
明确教材学习目标
注意每个系统调用的参数、返回值,会查帮助文档阅读教材,完成课后练习(书中有参考答案),考核:练习题把数据变换一下
学习视频,掌握两个重要命令:
man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用
grep -nr XXX /usr/include :查找宏定义,类型定义
教材中相关代码运行、思考一下,读代码的学习方法见「代码驱动的程序设计学习」。
代码重点:课程演示代码
这些内容在上一周的博客中我已经概括了,链接如下:
http://www.cnblogs.com/5314zkj/p/6052730.html
教材学习内容总结
本章知识点补充
标准I/O
标准I/O库将一个打开的文件模型化为一个流,也就是一个指向FILE类型的结构的指针。#include <stdio.h> extern FILE *stdin; /*标准输入,文件描述符为0*/ extern FILE *stdout; /*标准输出,文件描述符为1*/ extern FILE *stderr; /*标准错误,文件描述符为2*/
类型为file的流是对文件描述符和流缓冲区的抽象,目的是使开销较高的Unix I/O系统调用的数量尽可能小。
错误处理
错误处理包装函数:给定某个基本的系统级函数foo,定义一个有相同参数的包装函数Foo。包装函数调用基本函数并检查错误。如果发现错误就打印一条信息并终止进程,否则返回调用者。即如果没有错误,包装函数的行为与基本函数完全一样。包装函数被封装在一个源文件(csapp.c)中,被编译和链接到每个程序中。
Unix风格的错误处理
函数返回值既包括错误代码又包括有用的结果。如果遇到错误就返回-1,并将全局变量errno设置为指明错误原因的错误代码。如果成功就返回有用的结果。if((pid = wait(NULL)) < 0) { fprintf(stderr,"wait error:%s\n",strerror(errno)); exit(0); }
Posix风格的错误处理
只用返回值来表明成功(0)或者失败(非0)。任何有用的结果都返回在通过引用传递进来的函数参数中。if((retcode = pthread_create(&tid,NULL,thread,NULL)) != 0) { fprintf(stderr,"pthread_create error:%s\n",strerror(retcode)); exit(0); }
DNS风格的错误处理
在失败时返回NULL指针,并设置全局变量h_errno。if((p = gethostbyname(name)) == NULL) { fprintf(stderr,"gethostbyname error:%s\n:",hstrerror(h_errno)); exit(0); }
复习上课内容
老师在上课时之间演示过man -k的使用 ,这里对read grep进行搜索图5:
代码调试中的问题和解决过程
问题1 头文件出错
图1:编译书上代码时,头文件出错。
原因:
csapp.h不是计算机自带的
从网上下载后,问题解决。
csapp.h和csapp.c:
下载地址http://csapp.cs.cmu.edu/public/code.html:
将下载好的两个文件移到
/usr/include文件夹
代码上传及托管情况
图2:图3:
图4:
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第七周 | 1300/1750 | 11/11 | 140/140 | |
第八周 | 1700/2000 | 13/13 | 160/160 | |
第九周 | 2000/2400 | 14/15 | 180/180 | |
第十周 | 2500/2800 | 15/17 | 0/200 |
参考资料
《深入理解计算机系统V2》学习指导2016-2017-1 《信息安全系统设计基础》教学进程
Linux 基础入门
《深入理解计算机系统》
相关文章推荐
- 20145314郑凯杰《信息安全系统设计基础》第5周学习总结 part B
- 20145314郑凯杰《信息安全系统设计基础》第9周学习总结 PART A
- 20145314郑凯杰《信息安全系统设计基础》第7周学习总结 part B
- 20145314郑凯杰《信息安全系统设计基础》第1周学习总结
- 20145231 《信息安全系统设计基础》第9周学习总结
- 20145320 《信息安全系统设计基础》第9周学习总结
- 20145328 《信息安全系统设计基础》第9周学习总结
- 20145236《信息安全系统设计基础》第9周学习总结
- 20145314郑凯杰《信息安全系统设计基础》第6周学习总结 part A
- 20145202 《信息安全系统设计基础》第9周学习总结
- 20145223《信息安全系统设计基础》第9周学习总结
- 20145330 《信息安全系统设计基础》第9周学习总结
- 20145212 《信息安全系统设计基础》第9周学习总结
- 20145221 《信息安全系统设计基础》第9周学习总结
- 20145322学号 《信息安全系统设计基础》第9周学习总结(一)
- 20145335郝昊 《信息安全系统设计基础》第9周学习总结
- 20145314郑凯杰《信息安全系统设计基础》第7周学习总结 part A
- 20145214 《信息安全系统设计基础》第9周学习总结
- 20145305 《信息安全系统设计基础》第9周学习总结
- 20145313张雪纯《信息安全系统设计基础》第9周学习总结