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

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

    课后实践任务:
    1. 参考教材第十章内容
    2. 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名。
    3. 不要把代码都写入main函数中。
    4. 要分模块,不要把代码都写入一个.c中。
    5. 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息。

    步骤:
    创建文件smyod.c

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #define M 100
    
    void tx(int fd);
    void tc(int fd);
    int main(int argc,char *argv[])
    {
    	int fd;
    	if((fd=open(argv[1],O_RDONLY,0))==-1)
    		printf("无法读取该文件
    ");
    	else	
    	{
    	tc(fd);
    	close(fd);
    	fd=open(argv[1],O_RDONLY,0);
    	tx(fd);
    	close(fd);
    	}
    }
    
    void tc(int fd)
    {
            int i, a;
            char ch[M];
            
            printf("原文件输出为:
    ");
            while((a=read(fd,ch,16))!=0){
            	for(i=0;i<a;i++)
           	 	{
       	     		if(ch[i]=='
    ')
          	       			printf("  \n");
                 		else
                  			 printf("%4c",ch[i]);
    	        }
                   printf("
    ");
          	}
    }
    void tx(int fd)
    {
    	int i, a;
    	char ch[M];
    
    	printf("16进制输出为:
    ");
    	while((a=read(fd,ch,16))!=0){
    		for(i=0;i<a;i++)
    		{
    			if(ch[i]=='
    ')
    				printf("  0a");
    			else
    				printf("%4x",ch[i]);
    		}
    		printf("
    ");
    	}
    }
    

    创建所要打开的文本文件:

    cao
    xiang
    besti
    5334
    

    将编译后的文件进行运行:

    编辑显示文档前两行的head程序:

    #include <stdio.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <string.h>
    int main(int argc,char*argv[])
    {
        FILE *fp=fopen(argv[2],"r");
        int i, j;
        char ch;
        j=atoi(argv[1]);
        for(i=0;i<j;i++)
        {
            do
            {
                ch=fgetc(fp);
                putchar(ch);
            }while(ch!='
    '&&ch!=EOF);
        }
        fclose(fp);
    }
    
    

    同理编写显示后两行的tail程序:

    #include <stdio.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <string.h>
    int main(int argc,char*argv[])
    {
    	FILE *fp=fopen(argv[2],"r");
    	int len;
    	char ch;
    	len=atoi(argv[1]);
    	int m=0;
    	do{
    		ch=fgetc(fp);
    		if(ch=='
    ')
    			m++;
    	}while(ch!=EOF);
    	fclose(fp);
    
    	int i=0;
    	FILE *fp2=fopen(argv[2],"r");
    	for(i;i<m;)
    	{
    		ch=fgetc(fp2);
    		if(i>=m-len)
    		{
    			putchar(ch);
    		}
    		if(ch=='
    ')
    			i++;
    	}
    	fclose(fp2);
    	return 0;
    }
    

    编译后运行结果:

    代码托管

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 75/75 1/1 5/0
    第二周 135/210 1/2 4/9
    第三周 234/444 1/3 6/15
    第四周 486/930 1/4 8/23

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:XX小时

    • 实际学习时间:XX小时

    • 改进情况:

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    python_16(bootstrap)
    python_15(jquery)
    python_14(js)
    .net 定义泛型方法解析XML数据赋值给相应对象
    SQL Server 数字字符串位数不够补0
    SQL Server 跨服务器查询
    JQ1.5 为动态追加的元素添加事件
    radio group 的change 事件
    记录兼职工作中遇到的问题-IIS 服务器站点无法启动
    记录第一份工作的最后一次需求-百分比环形进度条
  • 原文地址:https://www.cnblogs.com/bestixx/p/7674453.html
Copyright © 2011-2022 走看看