c
文章平均质量分 68
吴所试试
励志成为码龙
展开
-
《缓冲区的理解》
你想想,一份数据从cpu寄存器内计算出来,然后需要将这份数据输入到磁盘中,无非有两种方式,一种是直接从cpu内部向磁盘写入,一种是先写入到内存中,然后由内存向磁盘中写入。其实明眼人都能看出来,第一种方式的速度是十分缓慢的,因为相比于cpu的输出速度,磁盘的写入速度是非常慢的,这也就会导致电脑这个设备总体的运行速度变慢,这就是著名的木桶效应,所以由cpu向内存中写入,再由内存打包后同意写入到磁盘中,这种中间虽然多出了一个中间商,但是这种方式确实我们最快的选择了。b.行刷新——行缓冲——显示器——给人看的。原创 2022-11-29 15:14:41 · 399 阅读 · 0 评论 -
《基础IO》
表示一个已经打开的文件对象,而执行open系统调用,所以必须让进程和文件关联起来,每个进程都有一个*files,指向一个files_struct,该表最重要的部分就是保函一个指针数组,每个元素都是一个指向打开文件的指针!历其实就是c的库函数会自带缓冲区,而系统调用没有缓冲区,当你fork之后便出现了两份代码和两份数据,缓冲区中的数据会直接输入到文件中,但是系统调用的数据本就直接输入到了文件,缓冲区中就不存在了,这也就是出现了一个输入的原因。所以f#系列的函数都是对系统调用的封装,方便我们进行二次开发。原创 2022-11-27 16:55:08 · 372 阅读 · 0 评论 -
《Linux进程控制》
替换原理:用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序,当进程调用一种exec的函数时,该进程的用户空间代码和数据是完全被新程序替换,从新程序的启动历程开始执行,调用exec并不创建新进程,所以在调用exec前后该进程的id并没改变。非阻塞的等待方式就是在这个进程在等待的时候,发生了进程跳跃,cpu去处理其他的进程了,阻塞的进程状态就是,cpu一直在处理这个进程,没有去管其他的进程。a)非阻塞的等待方式。原创 2022-11-27 14:46:29 · 196 阅读 · 0 评论 -
《进程地址空间》
我们需要读取内存空间的内容的时候,我们会先去虚拟地址空间去找相应的虚拟的地址,然后到页表中按照虚拟的地址寻找到物理地址,根据物理地址寻找到相应的内存,然后将内存中存储的数据加载到相应的进程中,这也就能解释上面的现象发生的原因了,因为我们父进程和子进程都有自己的页表,所以虚拟地址是可以相同的,但是在物理地址中,父进程和子进程都是有用自己的一块空间,所以存储的内容是不相同的。这就需要一个中间的媒介叫做,页表,你可以简单的把页表理解为左边存储的是虚拟地址,右边存储的是物理地址,右边和左边的地址一一对应,原创 2022-11-13 13:10:18 · 125 阅读 · 0 评论 -
《二叉树的初步认识》
各位帅哥靓女们,我是吴所试试,这期给大家带来的是关于二叉树的有关内容,也就是分享一下我对二叉树的所知,老规矩,如果吴所试试有哪里说的不对的地方还请于评论区斧正,如果觉得吴所试试讲的还可以的话,还请给吴所试试一键三连,毕竟吴所试试码字不易。完全二叉树:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树迎出来的对于深度为k的二叉树,当他的每一个节点都与深度为n的满二叉树的编号从1到n的一一对应,就称之为完全二叉树。双亲节点或者父节点,若是一个节点含有的子树的根节点称为该树的子节点。...原创 2022-08-16 16:42:16 · 169 阅读 · 0 评论 -
《顺序表和链表之线性表》
7.头删除数据,这其实也是一个操作非常简单,但是你特别容易搞混的操作,因为你觉得头插入数据是从后面往前面挪,这是你就会将数据从后面往前面插,这个时候你就会发现你最后得到的结果就是最后就是将这个链表的数据全部都是最后一个数,其实这个道理是特别简单的,你只需要将这个数据链表从前面往后面挪动,这个时候第一个数据就会被覆盖掉,其实在我们计算机中不存在所谓的删除数据,我们都是将数据直接覆盖,因为覆盖后的数据是你所需要的,删除写入的数据成本极大。好兄弟二分查找的前提是有序啊,你插入数据的时候是不考虑数据的大小的。...原创 2022-08-07 21:18:42 · 78 阅读 · 0 评论 -
《算法的时间复杂度和空间复杂度(二)》
其实空间复杂度可以类比时间复杂度,但是空间这两个字我们一看就知道这其实就是一个算法占用临时空间的量度,空间复杂度并不是说程序占用了多大的空间,因为这个也没有意义,一个相同的算法在不同的架构下实现所需要的空间大小是不一样的所以空间复杂度就是讲你开辟的空间数学化。各位帅哥靓女们,我是猪猪,这期给大家带来的是《算法的时间复杂度和空间复杂度(二)》,也就是带带大家看看更多的关于空间复杂度的内容,老规矩,如果猪猪有哪里说的不对的地方还请于评论区斧正,如果觉得猪猪讲的还可以的话,还请给猪猪一键三连,毕竟猪猪码字不易。.原创 2022-07-30 15:38:01 · 57 阅读 · 0 评论 -
《算法的时间复杂度和空间复杂度(一)》
这个时候就需要借鉴到数学思维了,我们不应该去关注一个人吃完一个包子的时间,我们应该关注的是一顿吃几个包子然后通过计算每顿吃的包子算出总包子,也就意味吧时间复杂度中一些小的变量忽视,从而形成一个函数表达式,表达式表达的就是算法的基本执行次数,这就是算法的时间复杂度。那我一天给你四个包子,你早上全吃了,时间虽然是最短的,但是你除了早上不会饿,你中午和晚上都要挨饿,那有的小伙伴就要说了,那我早上吃两个,中午吃一个,晚上吃一个,这样我既能实现吃饱的效果,时间也是比较短的了,你早上吃两个包子你不觉得撑得慌吗?...原创 2022-07-28 21:53:29 · 85 阅读 · 0 评论 -
《C语言从代码到程序的一路奔波》
首先从大体上来看编译的过程首先让.c为后缀的文件通过编译器成为目标文件,目标文件的后缀在windows系统下为.obj在由连接器将链接库和.obj文件进行链接,组成一个后缀为.exe的文件,这个exe文件其实就是我们最后得到的可执行程序的文件。各位帅哥靓女们,我是猪猪,这期给大家带来的是程序的编译,也就是带带大家看看一个代码如何从字母变成一个可执行的文件,老规矩,如果猪猪有哪里说的不对的地方还请于评论区斧正,如果觉得猪猪讲的还可以的话,还请给猪猪一键三连,毕竟猪猪码字不易。这个阶段主要发生的也就是四件事。.原创 2022-07-17 15:38:01 · 208 阅读 · 0 评论 -
《自定义类型:结构体,枚举,联合(二)》
各位帅哥靓女们,我是猪猪,这期给大家带来的是自定义类型:结构体,枚举,联合(二),也就是带带大家看看更多的关于自定义类型的内容,老规矩,如果猪猪有哪里说的不对的地方还请于评论区斧正,如果觉得猪猪讲的还可以的话,还请给猪猪一键三连,毕竟猪猪码字不易。【三】枚举1.枚举的定义枚举顾名思义就是将可能是值一一列举出来,比如我们的现实生活中一周是从星期一到星期日,这是可以一一列举的,也就是如果描述的对象是有限的,且可以描述的,我们就可以一一列举,那么枚举在c语言里面的作用是什么呢?其实就是将一个对象给数据化,让原创 2022-07-13 16:09:16 · 180 阅读 · 0 评论 -
《自定义类型:结构体,枚举,联合(一)》
各位帅哥靓女们,我是猪猪,这期给大家带来的是自定义类型:结构体,枚举,联合(一),也就是带带大家看看更多的关于自定义类型的内容,老规矩,如果猪猪有哪里说的不对的地方还请于评论区斧正,如果觉得猪猪讲的还可以的话,还请给猪猪一键三连,毕竟猪猪码字不易。【一】结构体1.什么是结构体?我们c语言中有几个基础的类型,比如int,char,double,当你存储一个人年龄数据的时候可以去使用int类型,当你去存储别人的姓名的数据的时候你会去使用char[]类型,当你去储存一个人的升高的数据的时候你可以使用double的原创 2022-07-12 15:57:12 · 97 阅读 · 0 评论 -
《字符和字符串函数(一)》
关于字符串和字符串函数的浅析原创 2022-07-04 20:36:21 · 74 阅读 · 0 评论 -
C语言回调函数解析
c语言回调函数解析原创 2022-07-04 19:04:12 · 276 阅读 · 0 评论 -
指针进阶解析
各位帅哥靓女们,我是猪猪,这期给大家带来的是指针的进阶解析,也就是带带大家看看更多的关于指针的内容,老规矩,如果猪猪有哪里说的不对的地方还请于评论区斧正,如果觉得猪猪讲的还可以的话,还请给猪猪一键三连,毕竟猪猪码字不易。【一】指针内容的回顾1.指针是什么?指针就是一个变量,从来存放地址,地址是标识一块空间的唯一标识。2.指针的大小?指针的大小是固定的,取决你的电脑的平台,如果你是32位平台则为4字节,如果你是64字节你就是8字节。3.指针的类型的作用指针的类型决定了这个指针的访问原创 2022-05-31 10:14:55 · 66 阅读 · 0 评论