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

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

    课堂提交补充

    1 参考教材第十章内容

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

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

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

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

    6 课上上传代码到码云

    od命令

    文件内容查看

    od命令用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。

    常见的文件为文本文件和二进制文件。此命令主要用来查看保存在二进制文件中的值。比如,程序可能输出大量的数据记录,每个数据是一个单精度浮点数。这些数据记录存放在一个文件中,如果想查看下这个数据,这时候od命令就派上用场了。在我看来,od命令主要用来格式化输出文件数据,即对文件中的数据进行无二义性的解释。不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。

    语法

    od(选项)(参数)

    选项

    -a:此参数的效果和同时指定“-ta”参数相同;
    -A:<字码基数>:选择以何种基数计算字码;
    -b:此参数的效果和同时指定“-toC”参数相同;
    -c:此参数的效果和同时指定“-tC”参数相同;
    -d:此参数的效果和同时指定“-tu2”参数相同;
    -f:此参数的效果和同时指定“-tfF”参数相同;
    -h:此参数的效果和同时指定“-tx2”参数相同;
    -i:此参数的效果和同时指定“-td2”参数相同;
    -j<字符数目>或--skip-bytes=<字符数目>:略过设置的字符数目;
    -l:此参数的效果和同时指定“-td4”参数相同;
    -N<字符数目>或--read-bytes=<字符数目>:到设置的字符树目为止;
    -o:此参数的效果和同时指定“-to2”参数相同;
    -s<字符串字符数>或--strings=<字符串字符数>:只显示符合指定的字符数目的字符串;
    -t<输出格式>或--format=<输出格式>:设置输出格式;
    -v或--output-duplicates:输出时不省略重复的数据;
    -w<每列字符数>或--width=<每列字符数>:设置每列的最大字符数;
    -x:此参数的效果和同时指定“-h”参数相同;
    --help:在线帮助;
    --version:显示版本信息。

    运行截图

    head和tail的相关使用

    head和tail是一组想对应的命令,默认分别显示文件的开头和末尾10行记录。
    head命令默认显示头部的前N行。
    tail命令同head命名正好相反,tail默认输出尾部10行。tail命令参数和head概念差不多,但是要注意二者的+k,-k的各自含义,tail有一个非常有意思的参数是-f参数,使用该参数可以不停的追加显示一个文件最新插入的内容。

    运行截图


    运行代码为:

    #include <stdio.h>
    
    #include <stdlib.h>
    
    #include"head.h"
    
    
    int main(int argc,char *argv[])
    {
    
        int i;
        int n1=0,n2=0,n3=0,n4=0;
        for(i=1;i<argc-1;i++)
        {
            switch(argv[i][2])
            {
                case 'c':n1=1;break;
                case 'x':n2=1;break;
                case 'd':n3=1;break;
                case 'o':n4=1;break;
            }
        }
        FILE *file=fopen(argv[argc-1],"r");
        if(file==NULL){printf("Error!
    ");exit(0);}
        myod(file,n1,n2,n3,n4);
        return 0;
    }
    #include<stdio.h>
    void myod(FILE *file,int n1,int n2,int n3,int n4)
    {
        char ch,line[16];
        int i;
        int j=0;
        while((ch=fgetc(file))!=EOF){
            line[j%16]=ch;
    	if((j+1)%16==0){
            if(n1){for(i=0;i<16;i++)
            {
                if(line[i]=='
    ')
                {printf("%5s","\n");continue;}
    	    if(line[i]=='	')
                {printf("%5s","\t");continue;}
                putchar(line[i]);
                putchar(' ');
                putchar(' ');
                putchar(' ');
                putchar(' ');
            }
            putchar('
    ');}
            if(n2){for(i=0;i<16;i++)
            {
                if(line[i]=='
    ')
                {printf("0%-4x",'
    ');continue;}
    	    if(line[i]=='	')
                {printf("0%-4x",'	');continue;}
                printf("%-5x",line[i]);
            }
            putchar('
    ');
            }
    
            if(n3){for(i=0;i<16;i++)
            {
                if(line[i]=='
    ')
                {printf("%-5d",'
    ');continue;}
    	    if(line[i]=='	')
                {printf("%-5d",'	');continue;}
                printf("%-5d",line[i]);
            }
            putchar('
    ');
            }
            if(n4){for(i=0;i<16;i++)
            {
                if(line[i]=='
    ')
                {printf("%-5o",'
    ');continue;}
    	    if(line[i]=='	')
                {printf("%-5o",'	');continue;}
                printf("%-5o",line[i]);
            }
            putchar('
    ');
            }
            printf("下一行!
    ");
    	}
    	j++;
    
        }
    }
    
  • 相关阅读:
    linux-命令
    linux-命令-cd,ls
    linux-命令-概述
    linux-文件
    IOPS和带宽
    随记
    CAP,Base原理
    DateUtil
    JDK SPI
    001-进程 和 线程
  • 原文地址:https://www.cnblogs.com/m20155310/p/7672547.html
Copyright © 2011-2022 走看看