• 博客(81)
  • 资源 (7)
  • 收藏
  • 关注

原创 第03章 Linux的文件属性与目录

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ADk4WN0d-1670758252682)(https://gitee.com/embmaker/cloudimage/raw/master/img/20221014135738.png)]提示 : 封装2个函数 , process_ls 和 process_ls_l。检查一个文件是否存在, 如果存在就删除, 不存在创建。使用stat函数来实现stat命令的功能。编程实现ls 和 ls -l 命令的功能。

2022-12-11 19:33:23 841 1

原创 第02章 Linux的文件IO

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ILrDQZZQ-1670757752348)(https://gitee.com/embmaker/cloudimage/raw/master/img/image-20221011153558802.png)]打开文件都是向文件添加数据,就是以a+方式打开,用ftell函数直接得到当前位置,如果不为0,则说明文件不为空;只要用"a”方式打开,那么无论用fseek位置指针定位函数,在写入文件信息时,均只能写入到文件末尾。

2022-12-11 19:25:25 713

原创 第01章 Linux的标准IO

定义:系统自动的在内存中为每一个正在使用的文件开辟一个缓冲区,从内存向磁盘输出数据必须先送到内存缓冲区,装满缓冲区在一起送到磁盘中去。定义:系统自动的在内存中为每一个正在使用的文件开辟一个缓冲区,从内存向磁盘输出数据必须先送到内存缓冲区,装满缓冲区在一起送到磁盘中去。fread()和fwrite()函数支持这种类型的I/O。使用fgetc()/fputc()一次读或写一个字符,如果流是带缓存的,则标准I/O函数处理所有缓存。标准I/O库的所有操作都是围绕流(stream)来进行的,在标准I/O中,*

2022-12-11 19:18:03 833

原创 第3章 数据结构中树的概念

遍历 :沿某条搜索路径周游二叉树,对树中的每一个节点访问一次且仅访问一次。,每个结点有两个后继,则存在如何遍历即按什么样的搜索路径进行遍历的问题。:访问顺序,根左右 ,先访问树根,再访问左子树,最后访问右子树;:访问顺序,左根右: 先访问左子树,再访问树根,最后访问右子树;:访问顺序,左右根,先访问左子树,再访问右子树,最后访问树根;后序访问: 先访问左, 再访问右 , 最后访问根。中序访问: 先访问左, 再访问根, 最后访问右。先序访问:先访问根, 再访问左, 最后访问右。

2022-11-20 17:22:24 438

原创 第2章 数据结构中栈与队列的概念

当小时指示器放入第12个球时,原来的11个球按照他们被放入时的相反顺序加入球队列的队尾,然后第12个球也回到队尾。

2022-11-20 17:19:48 531

原创 第1章 数据结构的概念

内存的流程,C语言的单链表增删改查。

2022-11-13 19:12:22 1789

原创 第5章 C语言高级的库函数

* Day. [1-31] */ // 一个月中的哪一日 int tm_mon;/* Month. [0-11] */ // 月份在计算中要手动加1 int tm_year;/* Year - 1900. */ // 在计算中, 要考虑这个因素 int tm_wday;/* Day of week. [0-6] */ // 星期几 int tm_yday;/* Days in year.[0-365] */ // 一年的第多少天 int tm_isdst;

2022-11-13 18:55:49 1326 2

原创 第4章 C语言高级的关键字

【代码】第4章 C语言高级的关键字。

2022-11-13 18:43:24 711

原创 第3章 C语言高级的预处理

include “文件名” : “” 表示首先在当前目录中搜索,若没有,再按标准方式搜索。#include : 表示的是按标准方式搜索 , 系统指定的路径进行搜索。直接使用gcc 编辑时, 会自动调用连接工具 , 连接时主要是连接库(静态库和动态库)使用命令: gcc -S , 是把C语言生成汇编语言。是把汇编语言转换成机器码, 需要使用命令 gcc -c。连接库以后, 就可以生成可执行程序了。条件编译指令 #if 和 #endif。实例30 , 多文件编译。

2022-11-11 22:10:45 615

原创 第2章 C语言高级的函数

​ 不在前述各个作用域中出现的声明,具有文件作用域,这样声明的标识符的作用域开始于声明点,结束于文件尾。变量从产生到结束的这段时间就是它的生存期。在变量生存期内,变量将保持它的值,直到被更新为止。块作用域中声明的,没有用static修饰的变量是动态生存期的对象(习惯称局部生存期变量)。程序在运行时, 可以带入参数 , 有main函数的参数进行获取。开始于程序执行到声明点时,结束于命名该标识符的作用域结束处。例如 , 获取运行程序时传入的参数的个数和内容。argc :表示参数的个数。静态生存期与动态生存期。

2022-11-11 22:05:15 763

原创 第1章 C语言高级的枚举、typedef、位域(三)

struct 位域结构名 {位域列表 };// 数据类型 变量名称:暂用二进位的宽度;实例16源文件源代码// led1 是一个开关量, 占用1个二进制的为 0和1 unsigned int led2 : 1;// led2 是一个开关量, 占用1个二进制的为 0和1 unsigned int beep : 1;// beep 是一个开关量, 占用1个二进制的为 0和1 unsigned int keyval : 3;

2022-11-11 22:00:59 696

原创 第1章 C语言高级的共用体(二)

定义一个共用体类型的一般形式为:union 共用体名 {成员表列;};实例11源文件源代码# include # include // 共用体的定义 union student {// 学号 char name [ 20 ];// 保存姓名的数组 char sex [ 10 ];// 年龄 float score;// 成绩 };// 定义一个共用体变量 stu1 . number = 1;

2022-11-05 22:22:24 257

原创 第1章 C语言高级的结构体(一)

​ 在实际的处理对象中,有许多信息是由多个不同类型的数据组合在一起进行描述,而且这些不同类型的数据是互相联系组成了一个有机的整体。此时,就要用到一种新的构造类型数据——结构体(structure),简称结构。​ 结构体的使用为处理复杂的数据结构(如动态数据结构等)提供了有效的手段,而且,它们为函数间传递不同类型的数据提供了方便。​ 结构体是用户自定义的新数据类型,在结构体中可以包含若干个不同数据类型和不同意义的数据项(当然也可以相同),从而使这些数据项组合起来反映某一个信息。

2022-11-05 22:09:10 356

原创 第16章 Linux的常用服务搭建

window下的powershell没有免密登录的功能,vscode的ssh插件也没有这个功能, 我们需要手动的生成秘钥, 来进行免密登录。打开“资源管理器” , 选择打开文件夹 , 选择 /home/linux/work 目录, 点击确定。会提示, 是否保存秘钥 ,可以保存用户名和密码 , 下一次连接时可以不输入密码, 选择接收并保存。点击重新连接后, 输入密码, 选择记住密码, 下次可以不在输入密码 , 之后点击确定。正产输入密码后,即可连接, 如果没有连接上 , 可以点击工具栏中的重新连接。

2022-11-05 21:46:22 1599

原创 第6章 Linux的软件包管理 (二)

系列工具可能是Deb软件包管理工具中功能最强大的。Ubuntu将所有的开发软件包存放在Internet上的许许多多镜像站点上。然后,在APT工具的帮助下,就可以完成所有的软件包的管理工作,包括维护系统中的软件包数据库、自动检查软件包依赖关系、安装和升级软件包、从软件源镜像站点主动获取相关软件包等。在可以用的软件包中搜索制定的包 , 如果找到,该命令将返回名称与搜索词匹配的包。从服务器更新软件信息到本地 ,保持本地的软件信息和服务器一致。在安装软件时 , 需要先下载软件包到本地, 之后才可以安装软件包。

2022-11-04 17:16:31 1612

原创 第7章 C语言的系统复习 (七)

C语言系统复习

2022-11-03 16:05:14 262

原创 第15章 Linux的Makefile与Cmake编程

什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。特别在linux下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。

2022-11-01 21:23:54 829

原创 第14章 Linux的shell编程

随着各式Linux系统的图形化程度的不断提高,用户在桌面环境下,通过点击、拖拽等操作就可以完成大部分的工作。然而,许多Ubuntu Linux功能使用Shell命令来实现,要比使用图形界面交互,完成的更快、更直接。英文单词Shell可直译为“贝壳”。“贝壳”是动物作为外在保护的一种工具。可以这样认为,Linux中的Shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互命令是用户向系统内核发出控制请求,与之交互的文本流。

2022-10-30 21:21:22 1355

原创 第13章 Linux的系统服务管理

Systemd就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案,根据Linux惯例,字母d是守护进程(daemon)的缩写,Systemd这个名字的含义,就是它要守护整个系统。Systemd​ (上图为Systemd作者Lennart Poettering)使用了Systemd,就不需要再用init了。Systemd取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。

2022-10-30 21:05:43 568

原创 第12章 Linux的时间管理

Linux 时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称 RTC)时钟。系统时钟是指当前 Linux Kernel 的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在 BIOS 中进行设置。当 Linux 启动时,硬件时钟会去读取系统时钟的 设置,然后系统时钟就会独立 于硬件运作。Linux 中的所有命令(包括函数)都是采用的系统时钟设置。在 Linux 中,用于时钟查看和 设置的命令主要有 date、hwclock 和 clock。

2022-10-30 20:50:50 1481

原创 第11章 Linux的网络管理

ifconfig命令来自于英文词组”network interfaces configuring“的缩写,其功能是用于显示或设置网络设备参数信息。在Windows系统中与之类似的命令叫做ipconfig,同样的功能可以使用ifconfig去完成。

2022-10-30 20:39:42 1715

原创 第10章 Linux的进程管理

​交互进程:该类进程是由shell控制和运行的。死亡态:这是一个已终止的进程,但还在进程向量数组中占有一个task_struct结构。​守护进程:该类进程在后台运行。​程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念。​批处理进程:该类进程不属于某个终端,它被提交到一个队列中以便顺序执行。​进程是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡。等待态(挂起):此时进程在等待一个事件的发生或某种系统资源。​进程是一个程序的一次执行的过程。进程是一个独立的可调度的任务。

2022-10-28 21:16:07 1451

原创 第9章 Linux的磁盘管理

Ext4:Ext3的改进版本,作为linux系统中默认的文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。Ext2:最早可追溯到1993年,是Linux系统的第一个商业级文件系统,它基本沿袭了UNIX文件系统的设计标准。为了让读者更好地理解文件系统的作用,将在本章详细地分析Linux系统中最常见的Ext3、Ext4与XFS文件系统的不同之处,练习硬盘设备分区、格式化以及挂载等常用的硬盘管理操作,以便熟练掌握文件系统的使用方法。

2022-10-28 20:57:09 1380

原创 第8章 Linux的文件管理(四)

patch命令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。​ diff命令来自于英文单词different的缩写,其功能是用于比较文件内容差异。如果有多个内容相近的文件,如何快速定位到不同内容所在位置?​ diff 除了可以比较文件外, 也可以用于生成补丁文件。**语法格式:**diff [参数] 文件1 文件2。**语法格式:**patch [参数]

2022-10-21 21:39:03 251

原创 第8章 Linux的文件管理(三)

cp命令是用于文件的复制操作,文件个数是增加的,而mv则为剪切操作,也就是对文件进行移动(搬家)操作,文件位置发生变化,但总个数并无增加。通过zip命令可以将文件打包成.zip格式的压缩包,里面会附含文件的名称、路径、创建时间、上次修改时间等等信息,与tar命令相似。​ tar命令的功能是用于压缩和解压缩文件,能够制作出Linux系统中常见的.tar、.tar.gz、.tar.bz2等格式的压缩包文件。也是将一组文件或目录保存一个文件中,并按照某种存储格式保存在磁盘上,所占磁盘空间比其中所有文件总和要少。

2022-10-19 20:36:45 214

原创 第8章 Linux的文件管理(二)

一般来说,这个命令只能由系统管理者(root)使用,一般用户没有权限来改变别人的文件的拥有者,也没有权限可以将自己的文件的拥有者改设为别人。现在有这样一个文件,其所有者拥有可读、可写、可执行的权限,其文件所属组拥有可读、可写的权限;​ 在Linux系统中,每个文件都有归属的所有者和所属组,并且规定了文件的所有者、所属组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。若权限为6,则代表可读、可写(4+2)。文件权限的数字表示法基于字符(rwx)的权限计算而来,其目的是简化权限的表示方式。

2022-10-18 20:43:32 673

原创 第8章 Linux的文件管理(一)

ubuntu的根目录如下:​ bin 是 Binary 的缩写,存放着可执行文件或可执行文件的链接(类似快捷方式),你可以看到 ls, cat, mkdir 等常用命令都在这里,/bin 目录中的文件都是可执行的二进制文件,而不是文本文件。​ 与 /bin 类似的是 /sbin 目录,System Binary 的缩写,这里存放的命令可以对系统配置进行操作。普通用户可能可以使用这里的命令查看某些系统状态,但是如果想更改配置,就需要 sudo 授权或者切换成超级用户。可以看到一些熟悉的命令,比如 ifconf

2022-10-17 20:55:44 595

原创 第7章 Linux的用户管理

既然root管理员能够修改其他用户的密码,就表示其完全拥有该用户的管理权限。这个id命令是一个在创建用户前需要仔细学习的命令,它能够简单轻松地查看用户的基本信息,例如用户ID、基本组与扩展组GID,以便于我们判别某个用户是否已经存在,以及查看相关信息。passwd命令用于修改用户的密码、过期时间等信息,英文全称为“password”,语法格式为“passwd [参数] 用户名”。使用adduser时,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息,然后会根据这些信息帮你创建新用户。

2022-10-16 20:40:15 2571

原创 第6章 Linux的软件包管理 (一)

但是由于当时Linux系统规模和Internet网络条件的限制,没有考虑到操作系统中软件包存在如此复杂的依赖关系,以及帮助用户获取软件包(获取存在依赖关系的软件包)。软件包,将应用程序的二进制文件、配置文档、man/info帮助页面等文件合并打包在一个文件中,用户使用软件包管理器直接操作软件包,完成获取、安装、卸载、查询等操作。当然,Redhat采用了自己的打包格式生成Rpm包文件,由Rpm包管理器负责安装、维护、查询,甚至是软件包版本管理。第二,安装软件包时,无法检查软件包的依赖关系。

2022-10-16 20:29:53 684

原创 第5章 Linux的环境变量

Linux环境变量也称之为Shell环境量变,以下划线和字母打头,由下划线、字母(区分大小写)和数字组成,习惯上使用大写字母,例如PATH、HOSTNAME、LANG等。永久环境变量:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的。用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。系统环境变量:公共的,对全部的用户都生效。1)按生效的范围分类。3、Linux环境变量。

2022-10-07 21:18:51 331

原创 第4章 Linux的vim编辑器

Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具。连 vim 的官方网站 (https://www.vim.org/) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

2022-10-07 20:03:57 733

原创 第3章 Linux的Shell基础(二)

使用ls命令的-a参数可以看到全部文件(包括隐藏文件),使用-l参数可以查看文件的属性、大小等详细信息。cd命令用于切换当前的工作路径,英文全称为“change directory”,语法格式为 “cd [参数] [目录]”。ls命令用于显示目录中的文件信息,英文全称为“list”,语法格式为 “ls [参数] [文件名称] ”。绝对路径 : 开始于根目录(/),紧跟着目录树的一个个分支,一直到达所期望的目录或文件。相对路径 : 以当前的目录为参考而表示出的目录 , 不带绝对路径的 ‘/’

2022-09-29 09:09:28 527

原创 第3章 Linux的Shell基础(一)

随着各式Linux系统的图形化程度的不断提高,用户在桌面环境下,通过点击、拖拽等操作就可以完成大部分的工作。然而,许多Ubuntu Linux功能使用Shell命令来实现,要比使用图形界面交互,完成的更快、更直接。英文单词Shell可直译为“贝壳”。“贝壳”是动物作为外在保护的一种工具。​ 可以这样认为,Linux中的Shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互

2022-09-26 20:30:39 555

原创 第2章 Ubuntu18.04的安装与配置 (四)

VMnet0 : 桥接模式 # Ubuntu 有一个独立的ip 和window 是独立的两个系统VMnet1 : 尽主机模式 # 在专用的网络内连接虚拟机VMnet8 : 共享主机的IP # Ubuntu 和window 公用一个IP , 适合需要使用账号和密码上网是用这个比较好

2022-09-22 20:09:55 179

原创 第2章 Ubuntu18.04的安装与配置 (三)

以上是Ubuntu配置的镜像, 已经做好并压缩 , 使用时解压后使用VMware的打开虚拟机 , 即可打开使用。

2022-09-22 20:08:30 1585

原创 第2章 Ubuntu18.04的安装与配置 (二)

安装Ubuntu后, 默认的服务器是美国的服务器, 会比较慢, 需要把服务器切换到国内的服务器。

2022-09-22 20:01:21 402

原创 第2章 Ubuntu18.04的安装与配置 (一)

Workstation 16 Pro 基于行业定义的技术,在以下方面实现了改进:DirectX 11 和 OpenGL 4.1 3D 加速图形支持、全新的“暗黑模式”用户界面、在 Windows 10 版本 2004 和更高版本的主机上对 Windows Hyper-V 模式的支持、一个用于支持容器和 Kubernetes 集群的新 CLI“vctl”,以及对最新 Windows 和 Linux 操作系统的支持等。​ 出现这个错误的大部分都是vmware软件安装的问题, 都是因为安装路径设置不合适造成的。

2022-09-22 19:55:56 1257

原创 第1章 Linux系统的发展 (一)

1.什么是Linux需要从贝尔实验室的UNIX说起1969年,AT&T公司的贝尔实验室与MIT合作开发的Unix,旨在于创建一个用于大型、并行、多用户的操作系统。Unix的推广:从学校走进企业Unix的版本主要两个: AT&T System V ——就是俗称的“系统5”, Berkley Software Distribution (BSD)。2. Linux是一种操作系统​ 1991年,芬兰赫尔辛基大学的学生Linus Torvals为了能在家里的PC机上使用与学校一样的操作系统,开始编写了类UNIX。

2022-09-22 19:50:54 818

原创 第7章 C语言的递归函数 (六)

基本原理:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分小,则可以分别对这两部分记录继续进行排序,以达到整个序列有序的目的。简单的定义: 当函数直接或者间接调用自己时,则发生了递归。

2022-09-06 19:01:08 722

原创 第7章 C语言的函数封装思想 (五)

函数封装思想也是模块化编程思想

2022-09-06 18:59:58 782

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除