zoukankan      html  css  js  c++  java
  • 《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

  • 相关阅读:
    JavaEE Tutorials (25)
    洛谷 P2677 超级书架 2
    洛谷 P1029 最大公约数和最小公倍数问题
    洛谷 P1305 新二叉树
    洛谷 P3817 小A的糖果
    洛谷 P1618 三连击(升级版)
    洛谷 P2097 资料分发1
    洛谷 P1068 分数线划定
    洛谷 P1207 [USACO1.2]双重回文数 Dual Palindromes
    洛谷 P1223 排队接水
  • 原文地址:https://www.cnblogs.com/shoudeyunkaijianyueming/p/15270077.html
Copyright © 2011-2022 走看看