自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

原创 【Linux】进程间通信(一)---- 匿名管道

进程间通信通信我们大致知道是啥,就是互相传递信息那进程间通信,就是进程间相互传递信息了我们知道信息就是就是数据我们都知道进程具有独立性所以我们想要让进程中的一个,将信息直接传递给另一个进程。虽然从理论上讲确实可以,但这样无疑是破坏了进程的独立性所以操作系统会给在内存中开辟一个公共空间让这两个进程来进行通信但是我们想想进程访问这个空间,进行通信,本质就是访问操作系统进程对于系统来说就是用户,因为进程是用户来控制的操作系统是不会信任用户的。

2024-05-15 13:06:00 980

原创 【Linux】认识文件(四):文件系统,inode,以及软硬连接

上面我们是把磁盘进行了线性化,发现对应的内容进行存储的扇面进行定位,然后就能进行增删查改但是我们在日常使用的时候,我们用户只是创建和删除文件而已,计算机甚至没有提到过扇面磁道磁面的概念这就是文件系统的作用了文件系统在用户层为用户提供了文件的增删查改的功能,在底层将用户的操作转化成对磁盘的操作所以上面的磁盘只是了解一下,因为真正和磁盘打交道的是文件系统,不是用户。我们要做的是了解文件系统的操作和它的结构。不同系统的不同版本的文件系统可能都不用一样Linux ext2文件系统。

2024-05-10 14:14:16 1170

原创 【Linux】认识文件(三):缓冲区

这么会说肯定不太好理解,所以接下来,就给大伙解开缓冲区的面纱。这里我们能发现这里write的官方接口没有被打印两次。所以讲道理,C缓冲区的话,_exit是不会处理的。这里没有最好的刷新方式,只有最合适的刷新方式。但是exit是C接口,所以exit会进行处理。write直接就打印了出来,没有进入缓冲区中。这里大伙应该就能明白不同刷新方式的区别的。反而重定向到文件中的时候反而多了两条呢?但是这里细心的人可能会有别的疑惑了。这里其实就是缓冲区的展现了。所以我们这里可以来分析一下了。这里就要牵扯到缓冲区的。

2024-04-22 15:50:14 733

原创 【Linux】认识文件(二):重定向

最开始我们肯定要先了解什么是重定向。官方术语:在计算机系统中,重定向是一种机制,用于将一个程序的输入或输出从一个默认位置或设备重新定向到另一个位置或设备。这种机制可以改变程序的数据流方向,使其与其他组件或资源进行交互。这么长一串看起来还挺磨人的,所以这里下面就直接上:命令行中的重定向操作大伙应该都已经用过这几个了所以就随便演示一下操作,主要是让大家明白啥是重定向。

2024-04-22 11:00:51 749

原创 【Linux】认识文件(一):文件标识符

用了计算机这么多年,文件应该算是再熟悉不过了通俗的讲文件就是就是用来存储的那文件是由什么组成的?文件=文件内容+文件属性由这个组成其实我们就能知道文件的本质其实就是数据内容和属性本质都是用数据存储的。

2024-04-19 20:23:21 1097

原创 表的约束【MYSQL】

约束,这个词到时十分易懂。那数据库具体是约束什么的,不用想就是数据所以通过约束让数据库中的数据符合预期这个是通过技术手段,倒逼用户插入合法数据所以可以说凡是通过约束后插入的数据都是符合约束的。

2023-12-25 17:44:08 1020 1

原创 mysql中的数据类型和表操作【MYSQL】

上次的博客讲了库操作,接下来肯定就是表操作,讲到数据表了那下来的数据表中的各种类型肯定也不能少了。但是这里我们先讲数据表的操作,表中数据的类型就先用着,之后会挑重要的表中数据进行讲解。这里要进行表操作的前提:要选中要操作的数据库。1.1创建及删除表结构i. 创建表基础格式是这样这里我们创建完表以后可以进行查看一下。这里我们能看到修改成功了。这里能看到覆盖成功了。这里能发现删除成功了。就是整形类型。这里实际上有五种类型的整形类型整形类型间的区别只是存储的范围不一样。这里

2023-12-20 11:57:50 983

原创 mysql数据库相关知识【MYSQL】

在磁盘或者内存中存储的特定结构组织的数据说白了就是用来存储数据的库指的就是这里的一个个数据库文件,这些都是保存数据的库,这里可以说是我们口语意义上的数据库。但是上面既然提了使用口语的,那数据库肯定没有表面上这么简单了,所以接下来就要详细介绍了。1.数据库编码集——数据库存储的数据2.数据库校验集——读取数据库的数据或者操作时采用的编码格式说直白点:编码集就是数据库中的表存储的数据类型校验集就是对表中的数据进行读取和操作时,需要遵从的对应数据类型的方式。

2023-12-14 01:47:57 308

原创 Centos7中的mysql环境安装以及卸载【Linux】

近期博主要开始mysql的学习了所以这里博主把自己在Centos7中安装mysql的过程写成博客希望对大家能有所帮助。

2023-12-07 11:36:00 476

原创 进程(5)——进程终止【linux】

出错终止就是程序执行了程序内容,出现了错误,但是程序终止了。它的特点是终止程序后,会返回到上级函数中,程序会继续执行。其实区分的方式就是我们平常写代码时不经意中写的一行代码。异常退出是产生错误,导致程序崩溃,程序被迫终止。我们知道进程正终止和出错终止程序都是正常终止了。这里我们就来了解一下进程终止的常见三种方式。这里我们用一个代码就能展现出它们的差别了。这里就能体现出exit和_exit的区别了。正常就是程序正确完整的执行完了程序内容。这里我们就能看到return的特殊性了。

2023-11-29 13:15:59 288 1

原创 进程(4)——进程地址空间【linux】

地址空间按照我们的现有的理解来说。可以说成这样这里可以算是我们的现有的对地址空间的认识内存分区,不同的变量存储在进不同的区中但是今天要告诉大家这个进程地址空间不是真正的地址空间接下来就开始进行验证。

2023-11-27 19:56:56 190

原创 继承【C++】

继承听名字大家可能就知道它是什么意思了但是不知道继承的对象和内容是什么?这时候告诉大家继承是用在类和类的。那这个时候应该都清楚继承是干嘛用的了类如果继承了一个类,那能继承什么呢?成员函数和成员变量所以这里想都不用想就知道继承的是类中的函数和变量。这里被继承的类叫做:基类继承后的新类叫做:派生类派生类拿到的是基类的成员的使用权这里讲完了继承的用法与细节,这里就来总结一下继承的用法。

2023-11-21 11:43:42 125

原创 仿函数:对优先级队列的优化【C++】

class lesspublic:这个仿函数确实是个模仿函数的,它的本质就是个类并且对()符号进行了重载。

2023-11-17 20:01:03 198

原创 栈的三道oj【C++】

这里就挑了三道题用来熟悉栈。

2023-11-15 20:23:37 98

原创 容器适配器:栈的实现【摸鱼划水篇】

这里栈的实现,实际上和上篇博客里的list中的迭代器一样。都是用了模板的功能能实现list栈和vector栈的任意切换这里就直接上代码了实现就是这么简单。

2023-11-14 15:40:47 55

原创 List中的迭代器实现【C++】

所以我们这个时候应该自然而然的想到自己写一个类,来充当。

2023-11-13 17:08:06 709

原创 小解List的使用【C++】

这里vector能这么用,是因为vector的迭代器能支持加减,因为vector的地址是连续的。在vs编译器下,直接限制了用户对erase与insert后的指针对象的使用。因为他们本身就是不连续的,数据插入后,他们指针指向的位置依旧还是原来的值。所以vector的区别和使用上的区别也都是围绕着这个展开的。因为迭代器指向的位置虽然没变,但是指向的值却已经发生了变化。迭代器的种类不同,我们能看到他们支持的运算符种类也不同。所以他们的迭代器有很大的不同,这里就补充一下迭代器。

2023-11-09 19:31:35 69

原创 进程(3)——进程优先级与环境变量【Linux】

环境变量是一般是指:在操作系统中为了指定操作系统运行的一些参数。环境变量提供的一组name=value形式的变量不同的用户有不同的环境变量(这个是指不同用户的有的环境变量的值不同通常具有全局属性这是因为:我们运行的进程都是子进程,bash本身在启动的时候,会从操作系统的配置文件中读取环境变量信息所以环境变量信息通常是全局的,子进程会继承父进程的环境变量但是子进程改变环境变量的时候不会改变父进程的环境变量。

2023-11-08 18:21:37 189

原创 vector模拟实现

这个实现方法区别其实不重要,用string的实现方法依旧可以实现。

2023-11-05 10:55:10 104

原创 进程(2)——进程状态(僵尸,睡眠……)【linux】

如果进程需要访问硬件(设备)中的资源,这个时候就要涉及到操作系统对进程的管理。但是如果遇到一个进程正在向磁盘写入数据,正好被干掉的话,就会导致数据的丢失。这里我们能发现进程一直处于设备资源的到位,处于S的阻塞状态。假设现在只有一个一个CPU,那进程会去争抢cpu的资源。进程一般退出的时候,如果父进程没有主动回收子进程的信息。我们的学习重心还是要放在Linux系统的进程状态上来。这里的S的睡眠状态,可以看成是操作系统中的阻塞状态。上面的操作系统中的进程状态我们只是随便提一下而已。

2023-10-25 11:58:17 250

原创 进程(1)——什么是进程?【linux】

正在运行的程序还记得前面讲的冯诺依曼结构吗。系统的软件和硬件那里面我们讲了,输出设备和输入设备的数据交互基本都是和内存的之后cpu从内存中读取数据,在内存中被读取到的程序就可以看作在运行一个已经加载到内存中的程序,就叫做进程同时一个操作系统能运行多个进程,这个想必大家也知道因为在现实中,我们能一边听歌一边玩游戏就是多个进程并行pid:进程编号,每个进程都有属于自己的编号,便于管理getpidppid 父进程:可以认为时父进程中衍生出来的子进程getppid用法与子进程一样。

2023-10-22 16:05:31 716

原创 进程(0)——计算机的中的软硬件【Linux】

博主自己进行到了进程中的学习。进程算是linux学习中内容比较多的一个部分。所以估计会多写几篇博客当作进程的一个系列这里先从计算机最基础的软件和硬件开始讲起。

2023-10-21 14:33:08 241

原创 基础gdb操作【Linux】

想必大家应该都在Linux中写过代码,没写过的应该也不会点进这篇博客了。(毕竟没写过也用不上gdb)gdb是linux中的一种调试工具,可以帮我们进行断点,逐语句,逐过程的调试。让我们在Linux中也能体会到在WIN中码代码的感觉。

2023-10-19 15:50:10 574

原创 git本地仓库及远端仓库推送【linux】

但是我们并没有在仓库内部看见过这个文件,但是注意它的前缀带了个点,说明了它是一个隐藏文件。这里提醒,本地仓库已经同步完成,但是test.cpp还没有和远端仓库还没有同步。本地仓库已经上传了代码后,接下来就是上传到远程仓库了。进入到创建仓库界面,仓库名称和仓库介绍自己填就行。这个时候要将test.c同步到本地仓库中,输入。这里我们就能添加自己不想要上传的文件后缀了。这里就能发现文件已经上传到了本地仓库。然后就可以进入到linux界面中了。这里添加了一个test.cpp文件。这里我们在隐藏文件中找到了它。

2023-10-17 10:02:00 481

原创 浅讲make/makefile【linux】

make/makefile这两个可以说是搭档,缺一不可make和makefile可以说是做大型项目不可缺少的功能就本质来讲make是系统自带的一条指令makefile则是一个文件编译器会自己去寻找目录下的makefile文件并执行就是执行本目录下的makefile文件当目录下没有makefile文件的时候就会报错所以我们在学习make/makefile的功能,主要专注在makefile内部。

2023-10-15 16:37:45 257

原创 小解C语言文件编译过程【linux】

那实现代码在哪呢?就是在库中。但是我们在写代码的过程中,并没有导入库而导入库就是编译的过程中的部分了。现在先来讲库的种类。

2023-10-15 15:01:01 261

原创 vim基础指令(自用)

这个是自己随便写的,类似于笔记。

2023-10-11 11:13:03 1529

原创 【linux】权限相关问题

这样用户在共享文件夹中,只能本用户进行删除,不能被其他用户随意删除了。

2023-10-11 11:07:02 378

原创 String的增删查【C++】

从这里开始可以算是进入了STL的学习中。由于前面摸鱼摸得太狠了,国庆将会进行疯狂的补习。这次就先带来string的实现。这篇博客的本心主要是为了带大家了解string的底层逻辑并不是对string的完美模拟实现所以这里就打算挑几个比较常用的进行实现。

2023-09-25 10:32:15 420

原创 【C++】动态内存管理

这里是malloc的自定义类型的开辟内存方法class Apublic::_x(x)~A()private:int _x;接下来是new的申请内存的使用。class Apublic::_x(x)cout

2023-09-07 06:54:45 284

原创 【C++】类和对象(下)

如果我们在函数内进行赋值就会报错。

2023-08-04 13:43:50 231

原创 【c++】类和对象(中)

这句话可能有点难以理解这里举个例子这里我们创建了test类他的成员变量有一个happy类的对象。这个时候在我们创建test的对象的时,

2023-05-25 11:07:04 906

原创 【C++】运算符重载(日期类的实现)

博主在快写完类和对象(中)时,突然发现需要用到运算符重载的知识但是运算符有很多运算符要进行重载,会导致文章的篇幅略长所以就单独写了一个,另外,日期类是学习运算符重载比较好的一个例子,所以这里就用了日期类来讲解运算符重载。

2023-05-25 10:00:34 1447

原创 【C++】类和对象(上)

这个篇章算是博主学习的一个里程碑终于踏上了面向对象的语言的编程模式的正式学习这里博主会写三篇博客来讲解类和对象。这个也是C中的经典玩法了但是在C++中,类成为了单独的一个域众所周知,不同的域中的变量和函数可以重名,所以不能像以前一样直接对函数进行定义。//声明 //加了类域限定符 bool Date :: operator

2023-05-22 16:32:04 674

原创 【c++】浅讲引用

博主开始细学c++和linux了这次就带来浅学了的引用。引用不是在内存中开辟一个新空间的新变量类似于给变量取别名,和取别名的对象在空间中公用一个对象int a=0;int &b=a这里创建了一个变量a同时创建了一个a的引用b此时a和b都指向的同一块空间,就是说a和b的改变都会改变对方使用注意事项:1.同时一个变量可以有多个引用,就像一个人可以有多个别名2.创建别名后必须要进行初始化,指明是谁的别名1:任何场景都能用引用传参。

2023-05-13 14:08:54 654

原创 常见八种排序实现方法

这里的快速排序和堆排序博主以前都写过,这里就直接附上链接了这篇博客后,就准备去狂补c艹和linux的内容了。

2023-05-12 20:57:24 713

原创 二叉树各个功能实现(复习自用)

这篇博客是本人复习自用二叉树的层序遍历因为没有添加队列,所以不太好复制自用主要是留给自己看的。

2023-05-11 09:36:20 97

原创 详解快速排序的类型和优化

在博主之前刚学C的时候,曾经写了一篇快速排序那个时候才疏学浅(虽然现在也是)在经过深度学习了快速排序以后才知道自己对快速排序一无所知所以特地再出了这样一篇博客用来详解快排这个是本篇博客的大致内容和知识构图。本篇也将分为多个部分来进行对树状图内容的讲解。

2023-05-08 19:51:47 788

原创 二叉树相关的简单递归oj

这篇博客主要是博主感觉对二叉树oj题目不太熟悉,随便整理的一下题目和解答,方便复习,所以讲题部分主要以我自己以及为我以后便于复习的简便语言来描述,看官可以当作的题目随便刷一下,如果看不懂可以自己画一下递归展开图。

2023-04-30 13:12:53 791

原创 二叉树的遍历及相关衍生

如标题所示,在这里我们要研究的是二叉树的遍历。为什么不讲二叉树的增删查改?在实际使用过程中,二叉树的增删查改没有多大作用,二叉树是作为一种数据结构,不是用来存储数据,更多的是用来进行搜索赫赫有名的红黑树和B树,都是其的限制优化的产物之一。但是身为小白的博主现在只能先从最基本的遍历开始玩起。博主刚学C++一点,为了练习和熟悉,所以用的是C++,但是也没多熟练,还是有C的老习惯,请各位多多海涵。

2023-04-29 10:16:20 2478

空空如也

空空如也

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

TA关注的人

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