Linux
文章平均质量分 83
iiiiiankor
欢迎来到我的个人博客!我是一名在校生,热爱学习和探索各种知识。在我的博客中,我记录了自己学习的心得和体会,分享了各种有趣的知识和经验。通过这个平台,我希望能够与大家一起共同进步,激发彼此的思考和灵感。无论你对哪个领域感兴趣,都希望我的博客能成为一个启发和交流的地方。让我们一同追求知识,共同成长!感谢你的支持和参与,期待和你在这个知识的旅程中相遇。
展开
-
LeetCode23.合并k个有序链表
对于这样一个例子,我们遍历lists,每次要找到所有升序链表中,要比较每一个升序头节点val,找到最小的那个尾插到结果链表(ans)因为priority_queue的第三个参数需要传递一个仿函数,对于。每一个lists[i]都为空,即所有的升序链表都找了一遍了,就结束。— > 采用优先级队列(priority_queue)请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。也就是我们创建一个小堆,以val的大小来排序。原创 2024-06-20 15:22:20 · 385 阅读 · 0 评论 -
认识操作系统 | 理解管理 | 系统调用(System Call)
每个计算机系统都包含一个基本的程序集合,称之为操作系统(Operator System)本质来说,操作系统也是一个软件(程序集合不就是软件嘛),只不过这个软件比较特殊我们平时所说的操作系统,就比如我们每天都在用的Windows包括什么呢?内核部分,包括进程管理,内存管理,文件管理,驱动管理其他程序(函数库,shell程序等)原创 2024-06-20 14:50:49 · 908 阅读 · 0 评论 -
一篇文章学会进程替换
exec* 系列函数: 功能实际上就是加载器的底层接口,用这样的接口实际上就可以把任何程序加载进来。一定和应用场景有关,我们有时候,必须让子进程来执行新的程序!!原创 2024-04-09 16:02:05 · 2380 阅读 · 0 评论 -
关于exec系列函数中的argv以及命令行参数的指针类型为什么是char* const,而不是const char*、const char* const和char*
在真正的exec函数执行之前可以根据需求,更改传递的参数来适应不同的需求。显然ls没有 hello这个选项,因此,为了防止这种错误也为了安全性。那么这种情况下,程序执行就变成了: ls hello -l。,就不能在函数调用期间修改字符串内容了!原创 2024-04-08 21:29:54 · 210 阅读 · 1 评论 -
【Linux篇】makefile一次形成两个可执行
当makefile从上到下被扫描时,要生成的目标文件第一个遇到的就是all,然后他就知道了这个all依赖的是exec和mycmd,然后就分别推导式地执行下面的两个执行生成mycmd和exec。然后all的依赖条件具备了,想执行all的依赖方法,但是由于是伪目标不需要依赖方法,所以makefile至此就结束。首先要知道,正常的makefile文件,在执行的时候,遇到第一个目标文件,就只生成这一个。上面的makefile只会生成exec,因为第一次遇到的目标文件是exec。的时候,直接删除那两个可执行即可。原创 2024-04-05 16:50:11 · 581 阅读 · 1 评论 -
【Linux篇】认识冯诺依曼体系结构
还记得我们说内存是连续的,一般来说,加载某些数据的时候,其周围的数据也会被加载进来。因此,操作系统的作用就发挥了,操作系统会把可能用到的数据提前加载到内存中,这样CPU就直接可以去内存中找数据啦。小红的网卡作为输入设备,接收到消息,然后将消息加载到内存,CPU去内存读取数据,把消息解包,得到消息里的内容,重新写回内存。当小明给小红在输入框中输入消息之后,就已经被写入了内存,然后当小明点击发送的时候,CPU读取内存中的数据,对消息进行打包(如指定发送到哪里),然后输出到网卡。如果要运行必须要加载到内存,原创 2024-04-05 09:19:39 · 1794 阅读 · 2 评论 -
【Linux篇】gdb的使用
显示mytest的源代码,后面直接回车即可(因为gdb会记住最近的一条命令,如果命令无变化,可以直接回车),每次显示十行。注意:until是函数内跳转,不会调到函数外部,如果该函数在main函数中的位置是第18行,那么你输入的行数超过18行,他还是会停在18行。如果此时进入了一个函数,但是不想继续一步一步走了,想直接运行完这个函数,就用finish。(没有找到调试信息)在循环中,我们时常要查看循环变量的值是多少,可以用长显示让循环变量一直显示着。并且跳到下一个断点的时候,两个断点中间的代码是被执行了的。原创 2024-03-07 22:03:50 · 751 阅读 · 0 评论 -
【Linux篇】Linux下利用git同步到gitee
举个例子,A和B同时克隆了一个Gitee远程仓库,A提交并推送了一个文件testA.c,此时B也在写代码。有时候我们不需要提交某些后缀的文件到我们的远程仓库,比如在Visual Stdio中除了我们自己建的。文件把以这些为后缀的文件加入"黑名单",这样提交的时候,git就会自动忽略"黑名单"里的文件。出现的原因是建立仓库的时候信息不完善,让你完善一下自己的信息,方便git来追溯。这是因为,B的本地仓库已经和远程仓库不同步了,就会发生提交冲突 问题。把本地仓库中的内容,推送到云仓库。原创 2024-03-07 07:58:01 · 1111 阅读 · 0 评论 -
【Linux篇】gcc和g++的使用
gcc是一个专门用来编译链接C语言的编译器g++则是编译链接C++,也可以编译链接C语言注意:gcc不能编译C++原创 2024-02-04 12:00:25 · 859 阅读 · 1 评论 -
【Linux篇】Linux下的第一个小程序--进度条 & 蹦迪炫彩进图条
C语言给我们提供了输出缓冲区,输出的内容先流入缓冲区中,而缓冲区按照一定的刷新策略来刷新,刷新后才会显示到 屏幕。而其实在语言中的’\n’是被当作回车+换行的,所以在语言中有’\n’就自动来到下一行的最开始了。其实,printf是输出到stdout(标准输出流)的,对应的就是显示器。:‘\n’和’\r’只有到了显示器才会有效果,在缓冲区只是个字符。程序的运行结果:先等待三秒,然后输出hello,world!所以,当前行输入之后,来到下一行的最开始其实是:回车+换行。但是如果把’\n’换成’\r’,如下图。原创 2024-03-06 07:42:34 · 1169 阅读 · 1 评论 -
【Linux篇】Linux项目自动化构建工具-make/Makefile
在实际工作中,一个项目可能有很多源文件,比如有200个源文件,那么用gcc/g++编译的时候,我们应该先编译哪一个呢?而且,这么多源文件需要我们一个个去gcc来编译吗?而makefifile就定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作makefifile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。原创 2024-02-17 12:35:30 · 2153 阅读 · 1 评论 -
【Linux篇】yum
并且Linux起源于国外,所以该软件发布平台也是国外的平台,我们国家是有墙的,无法直接访问外网,所以如果要直接去软件发布平台下载,有时候就会打不开链接或者下载很慢等问题。这里解释一下软件发布平台,众所周知,Linux是开源精神的先驱,因此很多Linux上的软件也是开源的,所以软件发布平台中大部分都是一些开源精神爱好者所维护的。上面所说的手机app的下载模式模式同样适用于Linux系统中的下载软件的方式,而手机的App Store就相当于Linux中的yum。那么此时下载的如何进行下载的?原创 2024-02-06 15:32:41 · 827 阅读 · 1 评论 -
【Linux篇】(一文搞定Linux权限)Shell外壳程序 | Linux权限 | 粘滞位 | umask
当然,正常情况下不同的用户有各自的工作目录,一个用户的工作目录只有自己有读、写、执行权限,所属组以及other都是没有任何权限的。既然umask中出现的权限,都不应该出现在最终权限中,这就意味着umask与起始权限经过某种运算之后,保留起始权限中没有在umask中出现的权限。如果umask中某个位置是1,也就是umask中有这个权限,那么取反后就是0,与起始权限做与运算就可以去掉这个在umask中出现的权限。 即:首先判定你是谁,如果你是拥有者,那么只看拥有者权限,和你是否是所属组没关系。原创 2024-01-29 13:38:57 · 892 阅读 · 0 评论 -
【Linux篇】vim的基本使用 | vim配置
通常使用的如VS2019等工具,具有以下特点可以写C、C++、python、网页等多种语言集编辑、调试、编译、链接等功能于一体类似的这种工具叫做IDE:集成开发环境相比之下,vim的功能就简单得多vim是一款纯编辑器:只负责写代码。原创 2024-01-27 12:04:27 · 1172 阅读 · 1 评论 -
【Linux篇】Linux基本指令
Linux下一切皆文件,管道是一个内存级别的文件(作用类似于一个临时文件),用于传导资源(主要是数据),管道有入口,有出口。数据经过管道传输出去。原创 2024-01-26 15:36:54 · 1097 阅读 · 1 评论