饿了我会自己捡代码吃
码龄1年
关注
提问 私信
  • 博客:42,978
    社区:41
    43,019
    总访问量
  • 41
    原创
  • 25,159
    排名
  • 938
    粉丝
  • 学习成就

个人简介:是什么?为什么?怎么用?

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 加入CSDN时间: 2023-09-14
博客简介:

liuty0125的博客

博客描述:
是什么?为什么?怎么用?
查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    487
    当月
    6
个人成就
  • 获得967次点赞
  • 内容获得39次评论
  • 获得743次收藏
创作历程
  • 36篇
    2024年
  • 5篇
    2023年
成就勋章
TA的专栏
  • C语言
    8篇
  • Linux操作系统
    17篇
  • C++
    16篇
  • 数据结构
    9篇
兴趣领域 设置
  • 编程语言
    c++
  • 后端
    后端
  • 操作系统
    linux
  • 其他
    经验分享
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【Linux操作系统】进程间通信之匿名管道与命名管道

管道是操作系统中最古老的进程间通信的方式我们把一个进程连接到另一个进程的一个数据流称为一个“管道”
原创
发布博客 2024.10.30 ·
1099 阅读 ·
26 点赞 ·
2 评论 ·
20 收藏

【Linux操作系统】进程等待

"进程等待"是指一个进程因为某些原因暂时无法继续执行,而必须等待某个条件满足或某个事件发生后才能继续执行的状态,是操作系统进行资源管理、任务调度和同步协调的重要机制之一。通俗来讲就是我需要得到我想要的结果,我才能执行下一步本文主要讲解父子进程之间的等待关系。
原创
发布博客 2024.10.16 ·
737 阅读 ·
12 点赞 ·
0 评论 ·
25 收藏

【Linux操作系统】进程终止

errno是一个在头文件中定义的整型变量,当函数发生错误时,会设置errno为特定的错误码。main函数return返回的时候表示进程退出,return 的结果为退出码,我们还可以设置退出码的字符串含义。main、exit等函数的返回值,叫做进程的退出码,一般0表示进程执行成功,非零表示执行失败。函数的执行情况指的是函数在执行过程中是否遇到了错误或异常情况,以及这些错误或异常的类型和性质。我们可以通过退出码了解进程的执行结果,那么我们怎样知道函数的具体执行结果呢。
原创
发布博客 2024.10.16 ·
602 阅读 ·
26 点赞 ·
0 评论 ·
8 收藏

【Linux操作系统】进程的创建与替换

学习了Linux操作系统我们可以知道,进程是系统分配资源的基本单位,也是CPU调度的一个实体,它是程序执行的一个实例,Linux中提供了多种机制来创建进程,一般常用的是通过fork0()、clone()等系统调用,以及更高级的封装exec()系列函数()。在linux中fork函数时非常重要的函数,也是是最常用的创建新进程的系统调用返回值:自进程中返回0,父进程返回子进程id,出错返回-1当一个进程调用fork()时,系统会创建一个与当前进程几乎完全相同的子进程。
原创
发布博客 2024.10.01 ·
924 阅读 ·
28 点赞 ·
0 评论 ·
13 收藏

从底层理解为什么常量区中的代码不能被修改?

平时我们在编写代码时都会用到或遇到所谓的常量区或者不可修改的代码,比如说用双引号包起来字符串(“Hello World”)、C++中的 const、Java中的final等,平时我们在用或者见到时只知道这时语法规定的,但你有没有想过这到底 是为什么呢?本文将从操作系统底层分析常量区不可修改的原理。
原创
发布博客 2024.10.01 ·
667 阅读 ·
18 点赞 ·
0 评论 ·
9 收藏

【Linux操作系统】进程优先级

因此出现了优先级,我们的进程如果要访问某种资源,进程就要通过优先级以一定的方式进行排队,也就是享受资源的先后顺序。代表这个进程可被执行的优先级,通俗点说就是程序被CPU执行的先后顺序,其值越小越早被执行。优先级较高的进程会优先得到资源,后序还会有源源不断的进程产生,常规进程难以享受到资源。如果不加限制,将自己进程的优先级调整的非常高,别人的优先级调整的非常低。代表这个进程的nice值,其表示进程可被执行的优先级的修正数值。在优先级的修改中会介绍两者的用处。也体现出了进程的竞争性。,我们的进程之间需要。
原创
发布博客 2024.09.25 ·
496 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

有关main函数参数的理解与使用

在平时编写代码的过程中,我们会经常写main函数,这是一个程序必不可少的,main 函数是一个特殊的函数,它是程序执行的入口点,但我们往往都没有在意或使用main函数的参数,但main函数其实是有自己自带的参数类型的,只是我们一般没有用到。
原创
发布博客 2024.09.25 ·
1283 阅读 ·
16 点赞 ·
2 评论 ·
22 收藏

【Linux操作系统】系统进程状态与类型详解

于是为了保证某些正在干重要事情的进程不被杀掉,给这些进程加了一块“免死金牌” D状态,操作系统在杀进程时,如果进程只是一个普通的‘S’,操作系统可以杀,但如果是‘D’,那么因为有免死金牌,操作系统不能杀。进程一般退出的时候,它的代码和相关数据会被释放,但是,它的task_struct对象依然还在内存中,仍然占用内存,占用进程表,这些僵尸进程会累积起来,占用大量的进程表项。这可就麻烦了,信息丢失可是个大问题。一般系统中D状态的进程是很少见的,如果你看到了D状态的进程,那就说明你的系统里挂不远了,洗洗睡吧。
原创
发布博客 2024.08.07 ·
1492 阅读 ·
18 点赞 ·
1 评论 ·
17 收藏

有关Linux操作系统中僵尸进程与孤儿进程的理解

然而,在某些情况下,如果系统中产生了大量的孤儿进程,并且这些进程长时间运行而不结束,那么它们可能会占用系统资源,影响系统性能。进程一般退出的时候,它的代码和相关数据会被释放,但是,它的task_struct对象依然还在内存中,仍然占用内存,占用进程表,这些僵尸进程会累积起来,占用大量的进程表项。简单说就是父进程既然创建了子进程后,定然会给子进程布置了任务,子进程完成任务后需要将任务的完成情况报备给父进程,否则父进程怎么知道你有没有好好完成任务呢?前面我们知道,僵尸进程是能够恢复的,只要被父进程回收就行。
原创
发布博客 2024.08.07 ·
594 阅读 ·
16 点赞 ·
0 评论 ·
7 收藏

【Linux操作系统】进程的基本概念(PCB对象)详解

比如在学校在录取时,需要学生进行排队录取,会根据成绩的高低,也就是优先级来排队,在这里排队的肯定不是你本人过来排队,而是你的被学校导入的属性信息在排队,操作系统也是这样,也是要通过这种方式来进行进程的管理,比如我们以后会学到进程也要排队,这里排队的就是进程的PCB对象,而不是进程可执行程序的代码和数据。在一个学生被录取到学校时,先到学校的一定不是学生,而是这个学生所有的属性信息(也就是上面的结构体),学校会将这个学生的属性信息导入到学校的系统中,通过这些学生的属性信息通过这些属性信息来对学生进行管理。
原创
发布博客 2024.08.06 ·
880 阅读 ·
35 点赞 ·
0 评论 ·
29 收藏

【Linux操作系统】关于深度睡眠与浅度睡眠进程的理解

S(sleeping)在本质上也是阻塞状态的一种,可以说是阻塞的一种分支S状态是Linux中可中断的睡眠状态,表示进程正在等待某个事件或资源S状态下的进程可以被信号或中断唤醒并继续执行。在这种状态下,进程无法继续执行,因为它需要等待的资源或事件尚未发生。此时进程不会占用CPU资源,操作系统会调度其他可执行的进程等待某个事件或资源的完成后或者接收到信号,又会自动回到运行状态例如我们平时的命令行等待我们输入命令时就是一个浅度睡眠状态。
原创
发布博客 2024.08.06 ·
317 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

【Linux操作系统】makefile文件操作详解

在Linux中,Makefile是一种用于自动化构建和编译软件项目的工具。它通常用于管理大型项目中的源代码文件,以及定义项目的编译、链接和其他构建过程Makefile是一种文本文件,其中包含了一系列的规则,这些规则定义了如何从源代码文件生成目标文件(如可执行文件或库文件),它用于自动化编译过程,提高开发效率,减少手动编译的繁琐和出错率。
原创
发布博客 2024.08.01 ·
1479 阅读 ·
23 点赞 ·
0 评论 ·
29 收藏

【Linux操作系统】进程与内存文件的关系及文件描述符fd、重定向的理解

我们如果想访问文件,第一步都是要打开它,想要修改文件,都要通过执行代码以进程的方式完成修改3.我们的CPU只能访问内存,因此文件必须被加载到内存中才能访问4.一个进程可以打开多个文件,在一定时间内,系统会存在多个进程,但可能同时会存在更多被打开的文件,我们的系统是如何对这些文件进行管理的呢?5.系统中是不是所有的文件都被进程打开了(内存文件)?并不是,没有被打开的文件在磁盘中(磁盘文件)
原创
发布博客 2024.08.01 ·
914 阅读 ·
39 点赞 ·
0 评论 ·
11 收藏

【Linux】有关Linux中进程地址空间及页表原理的理解

虚拟地址映射到物理地址的地址可能是这个区域一块,那个区域一块 ,物理内存里的存储可能是混乱无序的,但如果我们有了页表这个中间转化的结构,哪怕物理内存中的储存再无序,但虚拟地址是有序的,物理内存的有序或无序与进程没有任何关系,因此页表映射使得物理内存从无序变成有序,让进程以统一的视角看待内存。但是这个虚拟内存并不存在内存或外存(但可以一部分在外存中,通过一些算法等)中,它是由操作系统和硬件管理的,是每个进程的一个独立地址空间,虚拟地址空间的布局内容在进程的地址空间中定义。
原创
发布博客 2024.07.30 ·
1220 阅读 ·
23 点赞 ·
1 评论 ·
30 收藏

【Linux】vim编辑器使用详解

Vim(ViIMproved)是一种高度可配置的文本编辑器,用于有效地创建和更改任何类型的文本。Vim的设计目标是提供一种高效的文本编辑方式,通过键盘快捷键和命令来执行大部分编辑任务,从而减少对鼠标的依赖。Vim 的设计哲学是键盘优先,所以尽量使用键盘快捷键来完成操作,而不是鼠标。随着你对 Vim 的熟悉,你会发现使用 Vim 的效率远远超过其他编辑器愿我们都能玩转Vim。
原创
发布博客 2024.07.20 ·
1785 阅读 ·
25 点赞 ·
1 评论 ·
15 收藏

【C++11】initializer_list、可变参数模板详解

在C++98及这前的版本中类模版和函数模版中只能含固定数量的模版参数C++11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和类模板模板参数包是一个特殊的模板参数,它表示零个或多个模板参数。在函数模板或类模板的定义中,可以使用省略号(…)来声明一个模板参数包。// Args是一个模板参数包,args是一个函数形参参数包// 声明一个参数包Args...args,这个参数包中可以包含0到任意个模板参数。// 这里可以使用递归或循环来展开参数包。
原创
发布博客 2024.07.20 ·
1095 阅读 ·
27 点赞 ·
0 评论 ·
15 收藏

操作系统之shell命令(外壳)及其运行原理详解

但我们一般用户,不能直接使用kernel,而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。通过shell对我们的指令进行解析,解析指令给Linux内核。shell(外壳)只是一个统称,一切有类似功能都乐意被称为shell外壳,这里的bash就是shell外壳。我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作。(比如进入D盘的操作,我们通常是双击D盘盘符),因此图形接口就是shell外壳。为什么不能直接使用kernel呢?
原创
发布博客 2024.07.18 ·
409 阅读 ·
6 点赞 ·
0 评论 ·
6 收藏

Linux操作系统有关权限的理解

第一个字符决定了Linux的文件类型,例如上面的d,除了d还有一些文件类型字符。但凡是都有例外,上述规则对root不管用,root具有超级权限,几乎无视权限。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”超级用户可以再linux系统下做任何事情,不受限制。我们创建一个新文件是,文件会有自带的默认权限。而普通用户只能做有限的事情。
原创
发布博客 2024.07.18 ·
1372 阅读 ·
42 点赞 ·
1 评论 ·
10 收藏

【C++11】 lambda表达式和包装器(function、bind)

lambda表达式书写格式:[capture-list] (parameters) mutable -> return-type { statement }[capture-list] : 捕捉列表,该列表总是出现在lambda函数的开始位置,编译器根据[]来判断接下来的代码是否为lambda函数,捕捉列表能够捕捉上下文中的变量供lambda函数使用。必写)(parameters):参数列表。与普通函数的参数列表一致,如果不需要参数传递,则可以连同()一起省略。
原创
发布博客 2024.07.15 ·
793 阅读 ·
25 点赞 ·
0 评论 ·
27 收藏

【数据结构】布隆过滤器的原理讲解及其底层实现和海量数据问题

1. 增加和查询元素的时间复杂度为:O(K), (K为哈希函数的个数,一般比较小),与数据量大小无关2. 哈希函数相互之间没有关系,方便硬件并行运算3. 布隆过滤器不需要存储元素本身,在某些对保密要求比较严格的场合有很大优势4. 在能够承受一定的误判时,布隆过滤器比其他数据结构有这很大的空间优势5. 数据量很大时,布隆过滤器可以表示全集,其他数据结构不能6. 使用同一组散列函数的布隆过滤器可以进行交、并、差运算。
原创
发布博客 2024.07.13 ·
1103 阅读 ·
20 点赞 ·
0 评论 ·
15 收藏
加载更多