zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155314 《信息安全系统设计基础》第4周学习总结

    2017-2018-1 20155314 《信息安全系统设计基础》第4周学习总结

    课堂实践——myod-系统调用版本

    实践内容

    1. 参考教材第十章内容

    2. 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名

    3. 不要把代码都写入main函数中

    4. 要分模块,不要把代码都写入一个.c中

    5. 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息

    6. 课上上传代码到码云

    我的代码

    原版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!
    ");
            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]=='
    ') printf("\n  ");
                 	 else printf("%-4c",str[j]);
    		 count++;
    	     }
                 printf("
    ");
                 printf("           ");
                 for(j=0;j<16;j++)
                 printf("%02x  ",str[j]);
                 printf("
    ");    
    	}
        }
        printf("%07o    ",count);
        for(j=0;j<i;j++){
            if(str[j]=='
    ') printf("\n  ");
            else printf("%-4c",str[j]);
    	count++;
        }
        printf("
    ");
        printf("           ");
        for(j=0;j<i;j++)
        printf("%02x  ",str[j]);
        printf("
    ");
        printf("%07o    ",count);
        printf("
    ");
        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!
    ");
            exit(0);
        }*/
        if(fd==-1){
            printf("ERROR!
    ");
            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]=='
    ') printf("\n  ");
                 	 else printf("%-4c",str[j]);
    		 count++;
    	     }
                 printf("
    ");
                 printf("           ");
                 for(j=0;j<16;j++)
                 printf("%02x  ",str[j]);
                 printf("
    ");    
    	}
        }
        printf("%07o    ",count);
        for(j=0;j<i;j++){
            if(str[j]=='
    ') printf("\n  ");
            else printf("%-4c",str[j]);
    	count++;
        }
        printf("
    ");
        printf("           ");
        for(j=0;j<i;j++)
        printf("%02x  ",str[j]);
        printf("
    ");
        printf("%07o    ",count);
        printf("
    ");
        //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小时

    参考资料

  • 相关阅读:
    Java --关于线程池的理解Executors.newFixedThreadPool(int n)
    有参数返回的Lambda
    vuejs经验交流之-开发环境和生产环境的启动
    vuejs经验交流之-安装(NPM)
    vuejs经验交流之-form表单校验
    Vue.js简介
    vuejs经验交流之-components(组件)
    vuejs经验交流之-图片上传
    vuejs经验交流之-watch 深度监测
    setTimeout(), clearTimeout()
  • 原文地址:https://www.cnblogs.com/crazymosquito/p/7674552.html
Copyright © 2011-2022 走看看