- 博客(90)
- 收藏
- 关注

原创 详谈 Linux进程控制(看这一篇就够了)
本文将系统介绍进程控制的基本要素,包括进程创建, 进程终止, 进程等待, 进程替换等方面。深入理解进程创建的相关知识, 帮助更好的构建知识架构!酷酷学!!!进程控制是操作系统中的一个重要主题,主要涉及如何管理和调度进程以确保计算机系统的高效运行。如果感觉本篇博客对你有帮助的话就点个关注吧~
2024-12-02 22:01:18
1858
69
原创 Linux__之__基于UDP的Socket编程网络通信
本篇博客旨在使用Linux系统接口进行网络通信, 帮助我们更好的熟悉使用socket套接字网络通信, 学会了socket网络通信, 就能发现所谓网络, 不过都是套路而已, 话不多说, 让我们直接进入代码编写部分.
2025-03-23 18:19:30
1407
1
原创 Linux软硬链接与动静态库
我们看到, 真正找到磁盘上文件的并不是文件名, 而是inode, 其实在linux中可以让多个文件名对应于同一个inode.硬链接是通过inode引用另外一个文件, 软链接是通过名字引用到另外一个文件, 但实际上, 新的文件和被引用的文件的inode不同, 应用场景上可以想象成一个快捷方式, 在shell中的做法:硬链接:软链接库是写好的现有的, 成熟的, 可以复用的代码. 现实中每个程序都要依赖很多基础的底层库, 不可能每个人的代码都是从零开始, 因此库的存在意义非同寻常.本质上来说库是一种可执行代码的
2025-02-18 20:31:45
916
原创 Linux Ext系列文件系统(看这一篇就够了!)
硬盘是典型的"块"设备, 操作系统读取硬盘数据的时候, 其实是不会一个个扇区地读取, 这样效率太低, 而是一次性连续读取多个扇区, 即一次性取⼀个”块”(block)。硬盘的每个分区是被划分为⼀个个的”块”。⼀个”块”的⼤⼩是由格式化的时候确定的,并且不可以更改,最常⻅的是4KB,即连续⼋个扇区组成⼀个”块”。”块”是⽂件存取的最⼩单位。注意磁盘就是⼀个三维数组,我们把它看待成为⼀个"⼀维数组",数组下标就是LBA,每个元素都是扇区每个扇区都有LBA,那么8个扇区⼀个块,每⼀个块的地址我们也能算出来。
2025-02-16 19:13:59
829
原创 Linux 之 详谈系统I/O文件及内核级缓冲区(看这一篇就够了)
读写⽂件时,如果不会开辟对⽂件操作的缓冲区,直接通过系统调⽤对磁盘进⾏操作(读、写等),那么每次对⽂件进⾏⼀次读写操作时,都需要使⽤读写系统调⽤来处理此操作,即需要执⾏⼀次系统调⽤,执⾏⼀次系统调⽤将涉及到CPU状态的切换,即从⽤⼾空间切换到内核空间,实现进程上下⽂的切换,这将损耗⼀定的CPU时间,频繁的磁盘访问对程序的执⾏效率造成很⼤的影响。因为标准I/O库每⾏的缓冲区⻓度是固定的,所以只要填满了缓冲区,即使还没有遇到换⾏符,也会执⾏I/O系统调⽤操作,默认⾏缓冲区的⼤⼩为1024。
2025-02-15 16:32:48
1092
原创 进程地址空间
我们在学习C语言的时候想必大家对这张图并不陌生, 这里可以理解为每一个进程都认为自己是独占系统物理内存大小, 进程之间,彼此不知道, 不关心对方的存在, 从而实现一定程度隔离!那么操作系统是如何进行管理的呢?所谓的进程虚拟地址空间, 本质是一个内核数据结构(类似PCB)。父子进程的全局变量的地址是一样的, 但是变量内容不一样!OS负责将虚拟地址转化为物理地址。
2024-12-01 14:10:31
236
1
原创 Linux自动化构建-make/Makefile
不管是源文件, 还是可执行程序, 都是文件, 程序可不可总是被执行就是看mtime的时间, 如果没有修改proc.c的m时间,只修改了proc.exe的时间, 那么表示exe比.c更新,编译器就认为没有必要再重新编译了, 相反如果.c的mtime时间更新,那么就可以重新编译生成新的可执行程序。以下简称acm时间, a表示最近一次访问的时间, M表示内容最近被修改的时间, C表示最近一个属性被修改的时间。依赖关系:右侧的依赖文件, 一个一个的交给gcc -c选项, 形成同名的.o文件。
2024-11-27 19:02:58
913
原创 算法专题十一: 基础递归
3. 当N = 3时跟N = 2的思路一样, 先把B上的n-1个盘子转移到B上(借助C),再把A上的最后一个盘子转移到C上, 最后将B上的盘子转移到C上(借助A),算法原理:这个就是求x的n次方, 如果使用暴力解法, 当n特别大时是会超时的, ,那么我们采用第二种思路, 递归的思想。解决大问题时具有相同的子问题时,解决子问题又出现相同类型的子问题时就可以使用递归。当链表为空或者只有一个节点, 返回当前节点即可,即为递归出口。先比大小,让小的那个节点连上后面合并好的链表。递归:宏观视角理解递归。
2024-11-22 19:55:06
659
原创 Linux基础指令(汇总)
tail命令从指定点开始将文件写到标准输出,使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename⾥最尾部的内容显⽰在屏幕上,并且不断刷新,使你看到最新的⽂件内容.-a 将所有章节的都显示出来,比如man printf它缺省从第一章开始搜索,知道就停止,用a选项,他会继续继续往后搜索直到所有章节搜索完毕,当按下q退出。如同时指定两个以上的文件或者目录, 且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。
2024-11-21 15:16:48
2137
1
原创 Linux环境搭建:如何使用云服务器
我们点击下载第一个, 下载之后可以任意安装路径, 下载之后点击打开,第一次登录时可能需要验证, 这里用户名可以随意填写,邮箱填写自己的邮箱进行验证, 之后就进入到了XShell的界面。在此界面展示的是轻量级云服务器, 如果需要其他的产品,可以点击控制台界面检索需要购买的产品, 我们以Flexus服务为例。选择自己需要的产品,之后下一步, 这里区域选择利自己最近的区域, 选择对应的镜像以及版本,最后点击购买。点击云服务器, 这里我们就可以查看到我们自己的云服务, 点击重置密码,记住这里的公网IP。
2024-11-20 17:08:50
458
原创 算法专题八: 链表
常用技巧画图!!!更加直观形象, 便于我们理解引入虚拟头节点, 方便我们对链表的操作, 减少我们对边界情况的考虑. 如果没有虚拟头节点我们可能还需要考虑头插时候的情况进行特殊处理3. 不要吝啬空间, 大胆定义变量4. 快慢双指针, (判环, 找链表中环的入口, 找链表中倒数第n个节点)链表中的常用操作创建一个新的节点 使用new尾插的方法头插的方法 (逆序链表)
2024-10-19 16:42:23
1372
1
原创 C++11新特性 右值引用与新的类功能
在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。
2024-10-14 21:35:11
1091
1
原创 C++: set与map容器的介绍与使用
这里map和set的特性需要先铺垫二叉搜索树, 而二叉搜索树也是一种树形解构, 二叉搜索树的特性了解, 有助于更好的理解map和set的特性
2024-09-09 18:26:36
3856
56
原创 C++中的继承
继承机制是面向对象程序设计使代码可以复用的最重要的手段, 它允许程序员在保持原有类特性的基础上进行扩展, 增加功能, 这样产生新的类, 称派生类
2024-09-02 22:31:52
1634
3
原创 C++第十一弹 -- STL之List的剖析与使用
list是C++标准模板库中的一种容器, 它是一个双向循环链表, 能够在任意位置进行插入和删除操作.
2024-08-19 20:12:26
1776
20
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人