第一章
知识点归纳及学习笔记:
介绍:第一章主要是简单介绍本书将要讲到的知识,引入一个整体的概念框架。并且推荐了一些书籍,简介了Linux系统极其版本。还讲述了VirtualBox和VMwarex中虚拟机的创建。
知识框架:
- 动态数据结构:链表、链队列、链栈、链树等实践中的用处和使用方式。学习通过多个层次的函数调用来显示一个程序的栈内容。可以练习打印磁盘的分区情况。还要二叉树相关的操作,像搜索树节点、插入和删除树节点等。
- 进程:进程的创建调度进程、切换运行不同的进程还有终止进程等,学习进程的概念还有进程的管理。
- 并发编程:将学习线程的实践应用,有快速排序和并发进程求解线性方程组。
- 定时器:学习定时器的原理定时器的中断和时钟服务功能。
- 信号信号处理:信号源、信号传递和处理、信号与异常之间的关系。
- TCP/IP网络编程:学习S-C模型即服务器-客户端模型,还有TCP/IP协议、套接字API、UDP和TCP套接字。
- Unix介绍:Unix系统有AT&T Unix、HP Unix还有Sun Unix等等,多数Unix系统都是专有的,一般人无法访问。
- 我们将使用Ubuntu Linux并且在虚拟机中进一步学习Linux系统。
实践内容:
VirtualBox的使用:
openeuler系统在VirtualBox中安装,首先虚拟机进行准备,选择Linux和Other Linux(64bit)
然后选择准备好的映像文件创建:
启动选择语言:
进行相应的配置:
安装完成后,在VirtualBox中将硬盘拖至光驱之前,然后重新启动
登陆成功之后:
内核版本:
网络连接情况:
VMware的使用:
创建Ubuntu Linux选择相应的映像文件
创建成功:
启动虚拟机
打开伪终端,用^+shift+T增加标签,利用alt+1、2、3切换标签。
第二章
知识点归纳及学习笔记
首先是Linux的文本编辑器vim,其中里面重点是利用h、l、j、k移动光标,利用i:、a:切换插入模式,:W保存、:q退出vim、:wq保存并退出、:q!强制退出。emacs文本编辑器有GUI界面,课上提到太老不推荐使用故不细究。
程序开发步骤:(伪代码、产品代码、测试代码)
步骤 | 指令 | 格式转换 |
---|---|---|
预处理 | gcc -E xx.c -o xx.i | C→C |
编译 | gcc -S xx.i -o xx.s | C→asm |
汇编 | gcc -C xx.s -o xx.o | asm→code |
链接 | gcc xx.o -o xx |
静态链接库:. ar rcs libmylib.a mysum.o
动态链接库:. gcc -c -fPIC mysum.c
默认的二进制可执行文件名为a.out,其中包括文件头(header)、代码段(code)、数据段(data)、符号表。程序执行过程涉及堆栈的知识学习、程序的终止有exit(0)正常终止,还有异常终止。
(注:32位GCC中运行时堆栈的使用情况还有64位GCC中的运行时堆栈的使用情况仍未理解)
makefile中目标项目依赖于一系列源文件等具体要看依赖项列表。
C语言中的常见错误:
- 未初始化指针、含有错误值的指针
- 数组下标越界
- 字符串指针和char数组使用不当
- assert宏
- fprintf()和getchar()
数据结构相关内容:
利用结构体和指针可以构建一个个节点,各个节点之间有相互联系
名称 | 相应操作 |
---|---|
单向链表 | 链表的创建,搜索、遍历、插入和删除 |
循环链表 | 链表的创建,搜索、遍历、插入和删除 |
双向链表 | 链表的创建,搜索、遍历、插入和删除 |
二叉树 | 二叉树的构建、遍历(深度优先、广度优先) |
实践操作:
所遇问题:
1.没有安装tree,然后输入sudo apt-get install tree但是报错,
2.第一个问题解决后继续输入sudo apt-get install tree仍然报错如下:(ubuntu遇到了 dpkg was interrupted, you must manually run 'dpkg..的问题)
解决方法:
1.没安装tree可以用apt-get install tree安装
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
2.
最终解决:
参考文档:
https://blog.csdn.net/liumiaocn/article/details/110255783
https://www.cnblogs.com/greamrod/p/12297998.html
https://www.jianshu.com/p/db98b84ac882
https://blog.csdn.net/moshenglv/article/details/92767613