zoukankan      html  css  js  c++  java
  • 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);
    }
    

  • 相关阅读:
    .NET实现Excel文件的读写 未测试
    权限管理设计
    struts1中配置应用
    POJ 2139 Six Degrees of Cowvin Bacon(floyd)
    POJ 1751 Highways
    POJ 1698 Alice's Chance
    POJ 1018 Communication System
    POJ 1050 To the Max
    POJ 1002 4873279
    POJ 3084 Panic Room
  • 原文地址:https://www.cnblogs.com/l97----/p/7618095.html
Copyright © 2011-2022 走看看