• 2017-2018-2 20155327 《信息安全系统设计基础》第2周学习总结


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

    1-vi

    . 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号

    1. 用Vi输入图中代码,并用gcc编译通过
    2. 在Vi中使用K查找printf的帮助文档
    3. 提交vi编辑过程截图,要全屏,包含自己的学号信息

    2-gcc测试

    1. 用gcc 进行预处理,编译,汇编,链接vi输入的代码
    2. 生成的可执行文件中要有自己的学号
    3. 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息

    3-gdb测试

    1. 用gcc -g编译vi输入的代码
    2. 在main函数中设置一个行断点
    3. 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
    4. 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

    4-静态库的测试

    1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
    2. 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
      首先我按照教程制作静态库的时候进行ar rcs xxxxx.a xxx.o xxx2.o命令时出现以下错误时

      通过查找发现建立库的时候需要由,o文件创建,需要先gcc编译成,o文件

    5-共享库

    1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
    2. 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

    6-Makefile

    1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.

    2 提交Make过程截图,要全屏,包含自己的学号信息
    若要生成一个mytest.so的动态库,发出指令gcc -shared -fpic -o mytest.so xx.c xx.c,用gcc -o prog main.c ./mytest.so进行动态库的链接


    myod

    1 复习c文件处理内容

    2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能

    1. main与其他分开,制作静态库和动态库

    2. 编写Makefile

    5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
    因为自己基础比较薄弱不会编写,请教了同学才学会了如何编写

    实践要求

    OD:用户通常使用od命令查看特殊格式的文件内容。通过指定该命令的不同选项可以以十进制、八进制、十六进制和ASCII码来显示文件。命令中各选项的含义:

    • A 指定地址基数,包括:
      d 十进制
      o 八进制(系统默认值)
      x 十六进制
      n 不打印位移值
    • t 指定数据的显示格式,主要的参数有:
      c ASCII字符或反斜杠序列
      d 有符号十进制数
      f 浮点数
      o 八进制(系统默认值为02)
      u 无符号十进制数
      x 十六进制数
      所以要求以myod实现读取并输出十六进制的ASCII码

    思路

    int main(int argc, char *argv[]){} 从命令行参数读入文件
    

    //argc 里是读得的位置参数的个数,包括程序名。
    //argv[i]里是读得的位置参数的字符串。i=0 程序名,i=1参数1
    for (i=1;i<=16;i++){
    // 按无符号十六进制 输出
    };

    实现

    int main(int argc,char *argv[])
    {
    FILE *file=fopen(argv[3],"r");
    run(file);
    return 0;
    }
    void run(FILE *file)
    {
    char ch;
    char c[18];
    while(ch!=EOF)
    {
        for(int i=0;i<=16;i++)
        {
            ch=fgetc(file);//从文件中依次读取字符
            c[i] = ch;
            printf("%3c",c[i]);
        }
        printf("
    ");
        for(int i=0;i<=16;i++)
        {
            printf("%3x",c[i]);
        }
        printf("
    ");
    }
     fclose(file);
    }
    

  • 相关阅读:
    ubuntu安装php的 mongodb扩展
    ubuntu安装php的 redis扩展
    Ubuntu14.04下安装Composer
    编译安装php
    RabbitMQ PHP扩展安装
    编译安装opssl
    安装卸载nginx
    本地VM安装虚拟机,使用xshell连接
    下载并破解IntelliJ IDEA(2017)
    symfony框架中使用service
  • 原文地址:https://www.cnblogs.com/l97----/p/7618095.html
Copyright © 2020-2023  润新知