2017-2018-1 20155314 《信息安全系统设计基础》第4周学习总结
2017-10-15 22:10
267 查看
2017-2018-1 20155314 《信息安全系统设计基础》第4周学习总结
课堂实践——myod-系统调用版本
实践内容
参考教材第十章内容用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名
不要把代码都写入main函数中
要分模块,不要把代码都写入一个.c中
提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
课上上传代码到码云
我的代码
原版myod
#include<stdio.h> #include<stdlib.h> void myod(char *f); int main(int argc,char *argv[]){ myod(argv[1]); return 0; } void myod(char *f){ FILE *fp; char ch; char str[16]; int i=0,j,count=0; if((fp=fopen(f,"r"))==NULL){ printf("ERROR!\n"); exit(0); } while((ch=fgetc(fp))!=EOF){ str[i]=ch; i++; if(i==16){ i=0; printf("%07o ",count); for(j=0;j<16;j++){ if(str[j]=='\n') printf("\\n "); else printf("%-4c",str[j]); count++; } printf("\n"); printf(" "); for(j=0;j<16;j++) printf("%02x ",str[j]); printf("\n"); } } printf("%07o ",count); for(j=0;j<i;j++){ if(str[j]=='\n') printf("\\n "); else printf("%-4c",str[j]); count++; } printf("\n"); printf(" "); for(j=0;j<i;j++) printf("%02x ",str[j]); printf("\n"); printf("%07o ",count); printf("\n"); fclose(fp); }
Linux系统级I/O版myod20155314
#include<stdio.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #include<unistd.h> void myod20155314(char *f); int main(int argc,char *argv[]){ myod20155314(argv[1]); return 0; } void myod20155314(char *f){ //FILE *fp; int fd; fd=open(f,O_RDONLY,0); char ch; char str[16]; int i=0,j,count=0; /*if((fp=open(f,"r"))==NULL){ printf("ERROR!\n"); exit(0); }*/ if(fd==-1){ printf("ERROR!\n"); exit(0); } while(read(fd,&ch,1)!=0){ str[i]=ch; i++; if(i==16){ i=0; printf("%07o ",count); for(j=0;j<16;j++){ if(str[j]=='\n') printf("\\n "); else printf("%-4c",str[j]); count++; } printf("\n"); printf(" "); for(j=0;j<16;j++) printf("%02x ",str[j]); printf("\n"); } } printf("%07o ",count); for(j=0;j<i;j++){ if(str[j]=='\n') printf("\\n "); else printf("%-4c",str[j]); count++; } printf("\n"); printf(" "); for(j=0;j<i;j++) printf("%02x ",str[j]); printf("\n"); printf("%07o ",count); printf("\n"); //fclose(fp); close(fd); }
运行截图
代码调试中的问题和解决过程
问题1:git add .时报错:fatal: Not a git repository (or any of the parent directories)
解决方案:这是由于本地版本管理仓库被删除了,需要用
git init命令重新初始化仓库,建立新的仓库:
问题2:
git push时报错:fatal: The current branch master has no upstream branch.
解决方案:利用
git push -u origin master -f命令强制覆盖已有的分支后再push,push成功:
代码托管
上周考试错题总结
结对及互评
本周结对学习情况
20155323结对学习内容
- 教材第1章 计算机系统漫游
其他(感悟、思考等,可选)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 |
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:5小时
实际学习时间:2小时
参考资料
《深入理解计算机系统V3》学习指导IEEE 754 Calculator
GNU Linux核心命令和工具的源代码路径
mac 自带 ftp工具
相关文章推荐
- # 2017-2018-3 20155337《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155319 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155202 《信息安全系统设计基础》第4周学习总结
- # 2017-2018-1 20155231 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155212 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 学号20155329 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155314 《信息安全系统设计基础》第7周学习总结
- 2017-2018-1 20155311 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155306 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155314 《信息安全系统设计基础》第11周学习总结
- 2017-2018-1 学号20155329 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155314 《信息安全系统设计基础》第1周学习总结
- 2017-2018-1 20155321 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155314 《信息安全系统设计基础》第5周学习总结
- 20155236 2017-2018-1 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155323 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155222 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155314 《信息安全系统设计基础》第9周学习总结
- 2017-2018-1 20155223 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155314 《信息安全系统设计基础》第14周学习总结