码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-11-07 02:13:48      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:cheat   计算   rcv   匹配   -shared   include   time   make   优先   

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

 

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

标签:cheat   计算   rcv   匹配   -shared   include   time   make   优先   

原文地址:http://www.cnblogs.com/5317p/p/6036817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!