《Unix/Linux系统编程》第一、二章学习笔记,知识点归纳及收获

第一章

知识点归纳及学习笔记:

介绍:第一章主要是简单介绍本书将要讲到的知识,引入一个整体的概念框架。并且推荐了一些书籍,简介了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

posted @ 2021-09-14 22:45  20191304商苏赫  阅读(42)  评论(0编辑  收藏  举报
Live2D