zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155325 《信息安全系统设计基础》0927课堂实践

    课堂实践

    静态库的测试

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

    • 知识点
      gcc -c 要封装的函数.c
      ar rcs 名1.a 要封装的函数.c
      gcc -c main.c
      gcc -static -o 名2 main.o ./名1.a

    共享库

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

    • 知识点
      gcc -shared -fpic -o 名.so 要封装函数.c
      gcc -o 名 main.c ./名.so

    Makefile

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

    2 提交Make过程截图,要全屏,包含自己的学号信息

    • 截图

    • 知识点

    testmymath: main.c add20155325.c sub20155325.c mul20155325.c div20155325.c
    gcc -Og -o testmymymath main.c add20155325.c sub20155325.c mul20155325.c div20155325.c

    myod

    原版

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void One(int LJ,int tx[],char tx2[]);
    char Change(int t);
    void TX(int H,int tx[]);
    void main(int argc,char *argv[])
    {
        FILE *fp;
        if((fp = fopen(argv[4],"r")) == NULL)
        {
            printf("   *** 文件打开失败***");
    	exit(0);
        }
        if(strcmp(argv[1],"od")==0)
        {
        	if(strcmp(argv[2],"-tc")==0)
    	{
                if(strcmp(argv[3],"-tx1")==0)
    	    {
    	    	char str[1000];
    		int num,i,j,i2;
    		int LJ,SY;
    		int tx[8];
    		char tx2[8];
    		int tSY,Dan;
    		for(num=0;num<strlen(str);num++)str[num]='0';
    		num = 0;
    		while((str[num]=getc(fp))!=EOF){num++;}
    		for(LJ=0,SY=num;;)
    		{
    		   for(j=0;j<8;j++)tx[j] = 0;
    		   One(LJ,tx,tx2);
    		   for(j=0;j<8;j++)printf("%c",tx2[j]);
    		   printf("  ");
    		   tSY = SY;
    		   if(tSY>=16)Dan = 16;
    		   else Dan = tSY;
    		   for(j=LJ;j<Dan+LJ;j++)
    		   {
    		      if(str[j]=='
    ')printf("\n      ");
    		      else printf("%c 	",str[j]);
    		   }
    		   printf("
    ");
    		   int tt;
    		   printf("         ");
    		   for(j=LJ;j<Dan+LJ;j++)
    		   {
    		   tt = str[j];
    		   One(tt,tx,tx2);
    		   for(i2=0;i2<8;i2++)
    		   {
    		         if(tx2[i2]!='0') printf("%c",tx2[i2]);
    		   }
    		   printf("  	");
    		   }
    		   printf("
    ");
    		   tSY =tSY-Dan;
    		   if(SY>=16)LJ = LJ+16;
    		   else if((SY>0)&&(SY<16))LJ = LJ+SY;
    		   else if(SY==0)break;
    		   SY = num-LJ;
    		}
    	    }
            }
        }
        else printf("指令输入错误
    ");
        fclose(fp);
    }
    void One(int LJ,int tx[],char tx2[])
    char Change(int t);
    {
        TX(LJ,tx);
        int i;
        for(i=0;i<8;i++)tx2[i] = Change(tx[i]);
    }
    
    char Change(int t)
    {
        if((t>=0)&&(t<10))return t+48;
        else return t+87;
    }
    
    void TX(int H,int tx[])
    {
        if(H>536870911)
        {
            printf("字符数太大,超出限制
    ");
    	exit(0);
        }
        int i = 7;
        for(;i>0;)
        {
           tx[i] = H%16;
           H = H/16;
           i--;
        }
    }
    

    问题

    1. 尝试过:git config -–global user.name "xxx"
    2. git config –-global user.email "xxx@xxx.com"
      无效
      然后我重新登录一下我的码云,发现原来的密码居然登不上去了,修改了密码之后,再推就能推上去了。

    感想

    重新配置过虚拟机等,走完所有流程,我会在之后的博客中将详情记录下来。
    本觉得Myod简单,结果处理了很久的bug,保持微笑。

  • 相关阅读:
    AjaxHelper 无刷新留言
    girdview 中的radiobutton 的逐行触发checkedselected事件
    .NET 新语法
    获取checkbox的值
    git 代码提交规范
    chrome的timeline中stalled问题解析
    小程序添加节流阀
    深度遍历与广度遍历
    JS 运行机制
    地址栏输入url后做了那些事情什么
  • 原文地址:https://www.cnblogs.com/GDDFZ/p/7617830.html
Copyright © 2011-2022 走看看