- 博客(51)
- 收藏
- 关注
原创 linux系统基础回顾(二)
⚪分析各个目标和依赖之间的关系⚪根据依赖关系自底向上执行命令⚪根据依赖文件的时间和目标文件的时间确定是否需要更新⚪如果目标不依赖任何条件,则执行对应命令,以示更新(如伪目标)第二个版本的makefile修改fun1.c之后执行make命令缺点冗余,若.c文件数量很多,编写起来比较麻烦GDB(GNUDebugger)是GCC的调试工具。其功能强大,现描述如下GDB主要帮助你完成以下四个方面的功能①启动程序,可以按照你的自定义的要求随心所欲的运行程序。......
2022-07-28 15:07:02
449
原创 linux系统基础回顾(一)
使用ls-l命令可得到一个目录下的文件和子目录的详细信息,一共包含9列。为文件属性字段(1)第1个字母为文件类型7种d目录文件-普通文件p管理文件l链接文件b块设备文件c字符设备文件s套接字文件(2)文件权限r表示读权限,w表示写权限,x表示可执行权限,-表示无权限第2个字母-第4个字母表示所有者权限第5个字母-第7个字母表示组用户权限第8个字母-第10个字母。......
2022-07-17 13:58:01
1096
原创 线程池原理
我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务呢?线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果
2022-07-14 17:37:58
1227
原创 基于语音识别的QT设计的csgo互动类视频游戏
最近学校实习做了一个智能家居项目,完成之后再次基础上自己做了一个关于csgo的项目,功能包括语音识别、登录界面、游戏精彩视频播放器、互动类视频游戏四个模块。主要技术栈:QT、C++编程、linux网络编程、语音识别项目演示视频:https://www.bilibili.com/video/BV1QZ4y1a7v5?share_source=copy_web项目开源地址:https://github.com/xhcstudy/csgo语音识别模块采用的是科大讯飞库,能够识别到你说的话并将内容转化为id传入,根
2022-07-10 15:55:48
1871
原创 常见的一些排序
⚪ 概念 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的数据元素调整为“有序”的数据元素。👉 冒泡排序的原理: 每一趟只能确定将一个数归位。即第一趟只能确定将末位上的数归位,第二趟只能将倒数第 2 位上的数归位,依次类推下去。如果有 n 个数进行排序,只需将 n-1 个数归位,也就是要进行 n-1 趟操作。而 “每一趟 ” 都需要从第一位开始进行相邻的两个数的比较,将较大的数放后面,比较完毕之后向后挪一位继续比较下面两个相邻的两个数大小关系,重复此步骤,直到最后一.
2022-07-08 20:46:56
665
原创 树和二叉树
👉树的定义:由一个或多个(n≥0)结点组成的有限集合T ,有且仅有一个结点称为根( root ) ,当n>1时,其余的结点分为m(m≥0)个互不相交的有限集合T1,T2 ,... ,Tm。每个集合本身又是棵树,被称作这个根的子树。👉树的结构特点■ 非线性结构,有一个直接前驱,但可能有多个直接后继( 1:n ) ■ 树的定义具有递归性,树中还有树。■ 树可以为空,即节点个数为0。👉若干术语:■ 根 → 即根节点(没有前驱)■ 叶子 → 即终端节点(没有后继)■ 森林 →...
2022-06-23 15:40:49
265
原创 实现高并发服务器(二)
之前简单实现了minihttp,但是实际效果并不是很好,因为回复响应是指定的,现在进行完善。首先我们需要针对响应去打开回复的文件文件概念简介 inode - "索引节点",储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。每个inode都有一个号码,操作系统用inode号码来识别不同的文件。ls -i 查看inode 号关键函数:stat函数作用:返回文件的状态信息调用之前需要包含以下头文件 #include #include ......
2022-06-20 21:28:27
739
1
原创 实现高并发http服务器(一)
目录一、项目需求二、需求分析1、何为Html页面2、何为http协议 三、实现Mini型http服务器1、接受http请求2、解析http请求3、响应http请求实现一个http 服务器项目,服务器启动后监听80端口的tcp 连接,当用户通过任意一款浏览器(IE、火狐和腾讯浏览器等)访问我们的http服务器,http服务器会查找用户访问的html页面是否存在,如果存在则通过http 协议响应客户端的请求,把页面返回给浏览器,浏览器显示html页面;如果页面不存在,则按照http 协议的规定,通知浏览器此页
2022-06-20 17:38:55
766
原创 淘宝分布式文件系统存储(二)
淘宝网为什么不用普通文件存储海量小数据?如果我以后想要存8个块的大小的文件,就会造成磁盘碎片当频繁的新增删除操作就会导致磁盘碎片很多,磁头想要寻址到文件就会造成很多不必要的开销,降低磁盘利用率和IO读写效率比如我有1T数据要存储,采用海量小文件存取,Inode信息就会占据至少128G内存,但是实际上是没有这么多内存给你使用的,就导致很多Inode信息我们要去磁盘去读,就会造成swap(内存的数据不断的移动到磁盘上,再次使用的时候又要将磁盘的数据导到内存,这一部分也是占用开销的)......
2022-06-16 13:36:27
337
原创 淘宝分布式文件系统存储引擎(一)
文件系统 -一种把数据组织成文件和目录的存储方式,提供了基于文件的存取接口,并通过文件权限控制访问。扇区 - 硬盘的最小存储存储单位(Sector)。一般每个扇区储存512字节(相当于0.5KB) 磁盘的每一面被分为很多条磁道,即表面上的一些同心圆,越接近中心,圆就越小。 而每一个磁道又按512个字节为单位划分为等分,叫做扇区块 - 文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。一个块通常是八个扇区,上图只画了四个上图中可以通过stat命令查看创建的de
2022-06-16 00:07:59
427
原创 Socket编程详解
Socket中文意思是“插座”,在Linux环境下,用于表示进程x间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。既然是文件,那么理所当然的,我们可以使用文件描述符引用套接字。Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是文件主要应用于本地持久化数据的读写,而套接字多应用于网络进程间数据的传递。在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程。“IP地址+端口号”就对应一个socket。欲建立连接的两个进程各自有一
2022-06-11 15:02:17
21231
原创 网络通信与Socket编程概述
①通信的目的地址(ip地址,例如有时候不知道域名ip地址可以通过nslookup查询)②使用的端口号(例如http 80 、smtp 25)③使用的传输层协议(如TCP、UDP)操作系统已经将具体通信的细节实现了封装,具体实现发送数据有一个详细的流程,操作系统就像一个代理,我们只需要将具体内容准备好,还有ip地址和端口号标记好就可以连接到服务器端具体流程:客户端:传输层:使用TCP/UDP协议网络层:通过IP地址寻找到服务器数据链路层:通过电信/联通的网络发送出去服务器端:也是通过操作系统代理,将数据包一层
2022-06-08 10:33:35
158
原创 MySQL基础
一、关于数据库1、什么是数据库如果一个项目是动态(内容会变化的,网页后缀.jsp、.php、.shtml等)内容的话,则数据库是必不可少的一个环节。2、MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,2008年被Sun公司收购,目前属于Oracle旗下产品。MySQL是最流行的数据库管理系统之一,在WEB应用方面,MySQL是最好的 RDBMS(Relational Datebase Management System,关系数据库管理系....
2022-06-04 22:11:35
719
原创 Shell基础
一、关于shell1、什么是shell什么是shell?Shell(外壳)是一个用C语言编写的程序,它是用户使用linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。什么是脚本?脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。常见的脚本:javaScript(JS,前端),VBScript,ASP,JSP,PHP(后端),SQL
2022-05-29 21:08:22
167
原创 linux权限管理
linux权限操作与用户与用户组是兄弟操作一、权限概述总述:linux系统一般将文件可存/取访问的身份分为3个类别:owner、group、others,且3种身份各有read、write、execute等权限。1、权限介绍什么是权限?在多用户(可以不同时)计算机系统的管理中,权限是指某个特点的用户具有特定的系统资源使用权力,像是文件夹、特定系统指令的使用或存储量的限制。在linux中分别有读、写、执行权限:①读权限对于文件夹来说,读权限影响用户是否能够列出目...
2022-05-27 14:30:41
5530
原创 linux自有服务
自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置)。一、运行模式运行模式也可以称之为运行级别。在linux中存在一个进程,init(initialize,初始化),进程id是1。该进程存在一个对应的配置文件:inittab(系统运行级别配置文件,位置/etc/inittab)文件的主要内容:根据上述描述,可以得知:Centos6.5中存在7种运行级别/模式。0 - 表示关机级别(不要将默认的运行级别设置成这个值)1 - 单用
2022-05-26 01:18:49
888
原创 vim的介绍
vim被称为编辑器之神,其功能十分强大,并且在开发和写日志文件中十分重要,所以掌握vim的使用至关重要。vim的重点是光标的移动、模式切换、删除、查找、替换、复制、粘贴、撤销命令的使用。1、vim三种模式vim中存在三种模式(大众的认知):命令模式、编辑模式(输入模式)、末行模式(尾行模式)命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行、复制行、移动光标、粘贴等等)【打开文件之后默认进入的模式】;编辑模式:在该模式下可以对文件的内容进行编辑;末行模式:可
2022-05-23 16:04:12
2103
原创 linux指令练习题
1、如何通过命令行重启linux操作系统?#reboot2、如何在命令行中快快速删除光标前/后的内容?前: ctrl + u后: ctrl + k3、如何删除/tmp下所有A开头的文件?#rm -f /temp/A*4、系统重要文件需要备份,如何把/etc/passwd备份到/tmp目录下?#cp /etc/passwd /temp/passwd5、如何查看系统最后创建的3个用户?#tail -3 /etc/passwd6、什么命令可以统计当前系统中一共有多少账户
2022-05-21 14:51:47
1301
原创 linux高级指令
1、hostname指令作用:操作服务器的主机名(读取、设置)语法1;#hostname含义:表示输出完整的主机名语法2:#hostname -f含义:表示输出当前主机名中的FQDN(全限定域名)2、id指令作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id...),该指令如果不指定用户则默认当前用户。语法1:#id 默认显示当前执行该命令的用户的基本信息uid指用户id,gid,groupid指用户组id,组指的是附加组id语法2:#id 用
2022-05-21 11:45:04
2264
原创 linux进阶指令
1、df指令作用:查看磁盘的空间语法:#df -h (-h表示以可读性较高的形式展示大小)2、free指令作用:查看内存使用情况语法:#free -m(m是以兆为单位查看)剩余的真实可以用的内存为1.9G-69M。Swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存3、head指令作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。语法:#head -n 文件路径4、tail指令作用1:查看一个文件的后n行,如
2022-05-16 17:07:11
1874
原创 linux基础指令
一个完整指令的标准格式:linux通用的格式#指令主体[选项][操作对象] ([]中的内容可有可不有)一个指令可以包含多个选项,操作对象也可以是多个。基础指令1、ls指令含义:ls(list)用法1:ls含义:列出当前工作目录下的所有文件/文件夹的名称。用法2:#ls 路径含义:列出指定路径下的所有文件/文件夹的名称。关于路径(重要):路径可以分为两种:相对路径、绝对路径。相对路径:相对首先得有一个参照物(一般是当前工作路径)。相对路径的写法:在相对.
2022-05-15 14:50:38
274
原创 linux的文件目录结构介绍
上图是linux的文件目录结构,红色边框中的文件夹起着十分重要的作用,进行文件操作的时候不要误删。1、Bin全称binary,含义是二进制。该目录中存储的都是一些二进制文件,文件都是可以被运行的。2、Dev该目录中主要存放的是外接设备,例如盘,其他的光盘等。在其中的外界设备是不能直接被使用的(与windows不同,windows插入u盘会自动给你分区),需要挂载(类似于windows下的分配盘符)。3、Etc该目录中主要存储一些配置文件。4、Home表示“家”:表示除了r..
2022-05-13 15:30:12
373
原创 linux操作系统关机命令
关机命令在linux中关机命令 有以下几个shutdowshutdown命令安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能
2022-05-13 10:03:06
983
原创 常见的操作系统介绍
一、计算机资源计算机资源分为两部分:硬件资源、软件资源。硬件:看得见摸得着的设备。软件:一般由研发工程师开发的一些程序,一般会称之为应用软件。问题:为什么在键盘上敲键盘会在屏幕上显示呢?键盘(硬件) -> 驱动(键盘驱动软件) -> 操作系统(软件) -> 显卡驱动 -> 显示器(硬件)操作系统(OS,operation system)属于特殊的软件。其他的一些应用软件都必须安装在操作系统中。二、操作系统目前市面上常见的操作系有:Windows系统
2022-05-12 20:17:17
2978
原创 网站的一些基础概念
网站的概念简单的说,网站是一种沟通工具,人们可以通过网站来发自己想要公开的资讯,或者利用网站来提供相应网络服务。网站的分类按编程语言: asp网站、php网站、jsp网站、Asp.net网站等。按用途分类:门户网站(综合网站,简单来说就是功能很多,带导航栏)、行业网站、娱乐网站等。按功能分类:个人网站、商业网站、政府网站(gov.cn)、教育网站(edu.cn)等。按商业目的分类:营利性网站(行业网站、论坛)、非营利性网站(企业网站、政府网站、教育网站)。根据网站面向终端的分类:
2022-05-10 10:31:39
445
原创 C++常用算术生成算法剖析
C++STL库中常用生成算术算法有 accumulate 和 fill在调用这些算法之前需要包含头文件 #include <numeric> 这个头文件很小,因为算法比较少1.accumulateaccumulate(iterator beg, iterator end, value); - 第三个参数value是起始累加值 能指定起始累加起始值。accumulate的底层十分简单,就是用一个for循环通过迭代器访问区间元素template<class _InIt,
2022-05-09 18:14:50
364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人