zoukankan      html  css  js  c++  java
  • 20145317 《信息安全系统设计基础》第八周总结2

    20145317 《信息安全系统设计基础》第八周总结2

    考题复习

    • 填空:Linux Bash中,查找home目录中昨天创建的文件的命令是(find ~ -ctime 1)。
      • 在指定目录下搜索指定文件名的文件:find /etc/ -name interfaces注意 find 命令的路径是作为第一个参数的
      • 基本命令格式为 find [path] [option] [action]
      • 与时间相关的命令参数:
        -atime 最后访问时间
        -ctime 创建时间
        -mtime 最后修改时间
    • 判断:Linux Bash中,set/env/exprot三个命令功能等价 。x
      • set,env,export。这三个命令很相似,都可以用于打印相关环境变量,区别在于涉及的是不同范围的环境变量,详见下表:
        • set:显示当前 Shell 所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量
        • env:显示与当前用户相关的环境变量,还可以让命令在指定环境中运行
        • export:显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变
    • man -k 填空: 数据结构中有二分查找算法,C标准库中有这个功能的函数,这个函数是(bsearch)
    • cheat 填空:实现“Display files,Sorted by size”功能的ls命令是 ( ls –S )
    • find 填空:查找根目录下所有目录的find命令是(find / -type d)
    • grep 填空:查找宏 STDOUT_FILENO 的值的命令是(grep -nr STDOUT_FILENO /usr/include)在vim中,查看printf man pages(帮助文档)的命令是?
      • grep命令,在文本中或 stdin 中查找匹配字符串,格式grep [命令选项]... 用于匹配的表达式 [文件]...

    • 3K
    • 除了main.c外,hello.c的源代码不想给别人,如何制作一个myhello.a静态库?main.c如何使用myhello.a?
      gcc -c hello.c
      ar rcvs libhello.a hello.c
    • gcc main.c -o main -L. -lhello (or gcc main.c ./libhello.a -o main)
    • - 创建静态库:使用AR工具gcc -c XX.car rcs libXX.a(静态库名) XX.o(添加的程序)
    • - 使用静态库:编译连接输入文件和静态库gcc -O2 -c XX.c(调用静态库程序名)gcc -static -o p2 XX.o(调用静态库程序名) libXX.a(静态库)
    • 除了main.c外,hello.c的源代码不想给别人,如何制作一个myhello.so共享库?main.c如何使用myhello.so?
      gcc -fPIC -c hello.c
      gcc -shared -o libhello.so hello.o
      gcc -o main main.c -L. -lhello
      libhello.so 要拷贝到/lib or /usr/lib
      • 共享库的生成 gcc -fPIC -c xxx.cgcc -shared -o libxxx.so xxx.o
      • 共享库的使用:gcc -o main main.c -L. -lxxx
    • 写出编译上面代码的makefile,编译出来的目标文件为testhello, 只用显式规则就可以.
      testhello: main.o hello.o
      gcc main.o hello.o -o testhello
      main.o: main.c hello.h
      gcc -c main.c
      hello.o: hello.c hello.h
      gcc -c hello.c
      • Makefile基本写法:test(目标文件): prog.o code.o(依赖文件列表)
        tab(至少一个tab的位置) gcc prog.o code.o -o test(命令)
        ......
      • man -k 填空:Linux中查找配置(configure)网卡(interface)的命令是(man –k configure | grep interface )
      • gdb判断: gdb中next和step都可以单步跟踪,根据自顶向下原则应该优先选用next. ( ok )
      • ch07 判断:C语言中的全局变量可以一次声明,多次定义。(X)
      • 2.19 填空:T2U4(8) = ( 8 )
        • T2Uw(x)=x+2^w(x<0)或x(x>=0)
      • 2.21 判断:C语言中: -2147483647-1 < -2147483647 ( ok )
        • 有符号数比较大小
      • 2.27 填空: x=9,y=12, x,y为四位无符号数,x+y = ( 5 )
        • 溢出,返回值为5
      • 2.33 填空:对于四位数补码0xC,其补码的非表示为十进制为( 4 )2.50 填空:二进制数0.111舍入到最接近的二分之一的十进制的值为( 1 )
        • 十进制:-4,补码的非十进制:4
      • CH02 填空:计算机将信息按位编码,通常组织成(字节)序列。
      • CH02填空:计算机的(字长)指明整数和指针数所的标称大小。

      • CH03 填空:(程序计数器或%eip) 指示将要执行的下一条指令在内存中的地址。CH03 判断: SET指令对有符号数和无符号数有不同的处理方式。(X)
        • PC指示下一条指令在寄存器中的地址
      • CH03 填空:Linux汇编中,销毁栈帧的语句是(movl %ebp,%esp popl %ebp 或leave)
      • CH03 填空:Linux汇编中,需要调用者保存的寄存器有(%eax,%edx,%ecx )填空:Linux中建立符号链接(快捷方式)使用的命令是( ln 或者 ln -s)
        • %eax、%edx、%ecx被划分为调用者保存寄存器
        • %ebx、%esi、%edi被划分为被调用者保存寄存器

      • CH04 填空:bool s= r==1 || r==2 || r=5 等价于(bool s = r in {1,2,5} )
        • =赋值==比较
      • 4.6 判断:Y86中,执行pushl %esp时,处理器的状态是不确定的。( x )
        • 压入栈中的是%esp的旧值
      • CH04 判断:ALU是一种时序电路。(X)
        • ALU(算数/逻辑)单元是组合电路
      • CH04判断:寄存器是一种时序电路。(X)
        • 时钟信号控制载入值

      • CH06 判断:逻辑磁盘块就是一个块数组。( ok )
        • B个扇区大小的逻辑块的序列
      • CH06 判断:DMA传送不需要CPU的干涉。(OK)
        • DMA(直接存储器访问):设备可以自行读写总线事务,不需要CPU的干涉
      • 6.8 填空:代码的步长为:( N*N )
        • 三层嵌套循环,代码访问步长为N*N
  • 相关阅读:
    KMP算法(字符串匹配)
    C 语言结构体之点运算符( . )和箭头运算符( -> )的区别
    归并排序(分治法)
    插入排序(挖坑)
    快速排序(挖坑+分治法)
    C++--------------------------------指针和数组替换使用原因
    广度优先搜索(BFS)----------------(TjuOj1140_Dungeon Master)
    图的最短路径-----------SPFA算法详解(TjuOj2831_Wormholes)
    最小生成树问题------------Prim算法(TjuOj_1924_Jungle Roads)
    图的最短路径-----------Dijkstra算法详解(TjuOj2870_The Kth City)
  • 原文地址:https://www.cnblogs.com/5317p/p/6036817.html
Copyright © 2011-2022 走看看