总结
这几周学习总结
首先 前几周测试自己出错的地方:
第三周:
判断:Linux Bash中, man printf和man 1 printf 功能等价。 ok
- 填空:在 Linux 里面可以使用使用(chmod)命令修改文件的权限。
- 填空:Linux中没有C盘,D盘,其文件系统的目录是由(FHS)标准规定好的。
- 判断:Linux Bash中,cd - 命令可以切换到'home'目录。 x 应该是cd ~ , cd -切换到上一个目录
- 判断:Linux Bash中,强制删除test文件的命令是(rm -f test )。
- 填空:Linux Bash中,ls . | sort 命令的功能是( 显示当前目录内容并排序 )
- 填空:Linux Bash中,使用grep查找当前目录下*.c中main函数在那个文件中的命令是( grep main *.c )
第四周:
cheat 填空:To list the content of /path/to/foo.tgz archive using tar ( tar -jtvf /path/to/foo.tgz )
find 填空:查找当前目录下所有目录的find命令是(find .
-type d)
grep 填空:查找宏
STDIN_FILENO 的值的命令是(grep -nr XXX /usr/include)
针对如下代码:
1. 在vi中,查看scanf和printf man pages(帮助文档)的命令分别是?(2分)
K 3K
2. 编译和运行以上代码的命令(2分)
gcc *.c -o main
./main
3. 使用GDB调试以上代码:编译代码的命令是?main.c中如何给main函数设置断点?如何在第六行设置断点?(3分)
gcc -g *.c -o main
b main
b 6
4. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?(3分)
gcc -c add.c sub.c mul.c div.c
ar rcvs libmymath.a add.o sub.o mul.o div.o
gcc main.c -o main -L. -lmymath (or gcc main.c ./libmymath.a -o main)
5. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?(4分)
gcc -fPIC -c add.c sub.c mul.c div.c
gcc -shared -o libmymath.so add.o sub.o mul.o div.o
gcc -o main main.c -L. -lmymath
libmymath.so 要拷贝到/lib or /usr/lib
6. 写出编译上面代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.(4分)
testmymath: main.o add.o sub.o mul.o div.o
gcc main.o add.o sub.o mul.o div.o -o testmymath
main.o: main.c head.h
gcc -c main.c
add.o: add.c head.h
gcc -c add.c
sub.o: sub.c head.h
gcc -c sub.c
mul.o: mul.c head.h
gcc -c mul.c
div.o: div.c head.h
gcc -c div.c
第五周:
man -k 填空:Linux中显示文件(file )属性(status)的命令是( stat )
cheat 填空:使用du命令对当前目录下的目录或文件按大小排序 的命令是( du -sk *| sort -rn )
grep 填空:~/test 文件夹下有很多c源文件,查找main函数在哪个文件中的命令( grep main
*.c )
vi 填空: vi中查看函数qsort的帮助文档的快捷键为(K)
2.23 填空:fun2(0xED005380) =
(0xFFFFFF80)
2.24 填空:四位数0xC 截断为3位数,解释为无符号数的截断值是(4)
2.25 判断:代码for中条件
i<=(int) length -1 可以消除程序bug ( ok )
2.27 判断: 函数代码可以是 ruturn x+y
>= y; (ok)
2.29 填空: [11000] + [11000] =
([110000])
第六周:
CH06 填空:对磁盘扇区的访问时间包括三个部分(寻道时间、旋转时间、传送时间)。
6.3 填空:最大旋转时间是(4ms)。
以下是本学期目前为止所有学习内容:
存储器层次结构
程序的机器级表示
处理器体系结构
信息的表示和处理
课堂内容:
缓冲区溢出 --栈帧
如何形成空栈 push %ebp
mov %esp %ebp
机器语言---机器的灵魂
信息=位+上下文
ISA
算术逻辑运算
寻址方式
跳转
中断
函数调用
栈帧
find 指定查找目录
-name----精确查找
-iname---不区分大小写
GCC编译: 预处理器------编译器----汇编程序----汇编器----连接器
操作系统管理硬件:
进程
线程
虚拟存储器
linux 静态库 xx.a
xx.Gb
动态库 xx.c
xx.h
具体内容见自己前几次博客
学习感受: 觉得自己学习的积极性提高了 从最开始比较茫然到现在稍稍学会了如何去掌握和学习这门功课 课后应该如何阅读书本 如何运用虚拟机一步一步完成实验楼的实验 以及不会调试的时候找同学帮忙同时自己学习 但不足仍有很多 在此放在心里以后一一进行改善。娄老师是一个负责人的老师…..(不得不提一下) 以后会更加努力 能进步一点就一点