- 博客(36)
- 收藏
- 关注
原创 Linux文件描述符
每个进程都有一个指针*files, 指向一张表files_struct,这张表中含有一个指针数组,这个数组就是用来管理被进程打开的文件的,所谓的文件描述符其实就是这个数组的下标了,而通过访问数组里面的内容,实现了对文件的读写等各种操作。实际上open的返回值就是所谓的文件描述符,是一个整数,一般来讲如果你在程序之前没有打开过任何文件这个返回值会是3,因为0,1,2都已经被占用了,分别是标准输入,标准输出和标准错误输出,因为Linux下一切皆文件,所以显示器键盘都可以理解为文件。
2026-08-28 14:00:18
211
原创 Linux文件操作
直接上代码看使用方法fopen需要两个参数,第一个参数路径+文件名,只写文件名默认当前工作目录,第二个参数选择打开方式“w”写“r”读“w+”读写(没有文件创建文件)“r+”读写(必须有文件)fwrite四个参数,写入字符串,写入的数据每个元素大小,总共的数据大小,FILE*指针fread四个参数,数据存放字符串,每个元素大小,读取总大小,FILE*指针fseek用于调整文件指针在文件中的位置,三个参数FILE*指针,偏移量,起始位置。
2026-08-28 11:13:05
183
原创 Linux进程替换
进程替换就是使用exec函数来替换原本的进程执行内容,调用exec函数不创建新的进程所以进程pid是不会改变的,替换的只是进程地址空间中的代码和数据进程替换的底层原理是原本的进程地址空间中的数据区和代码段被替换成磁盘当中的可执行程序的数据区和代码段,通过释放旧的内存页并构建新的页表映射来实现(先将页表清空,执行时发生缺页中断再重新建立起映射关系)那么进程替换有什么用呢?最常见的应用场景就是使用云服务器时运行指令的本质是bash通过fork创建了一个子进程,然后通过进程替换将子进程替换为指定的指令。
2026-08-27 16:19:48
231
原创 Linux进程概念
今天总结了进程的各种基本概念,涉及进程产生的原因,进程的管理方法,以及进程的状态等等,详细解释了僵尸进程的各种问题,希望大家有所收获。
2026-04-09 15:29:24
342
原创 Linux系列文章(8)编写一个进度条程序
在之前的文章中,我们已经学会了如何使用vim进行内容的编写,学会了make和makefile进行便捷地编译文件,今天就来实际练习一个程序,编写一个进度条。
2026-02-09 09:37:23
746
原创 字符串小tips,getline处理特殊符号隔断
我们在做一些题目的时候可能会遇到有些题目每一个输入不以空格或者回车换行为隔断这时候就需要使用getline函数来读取一整行的数据,然后再进行分割,划分出每个yuansu。以逗号作为分割符号,然后我们想要提取出每一个元素并把它们存到一个整型数组当中,就可以使用这种方法。先将字符串存储到一个stringstream对象中,再使用while+getline函数的形式。而配合while循环时,每次循环的s就是以规定的分隔符分割出的元素。举个例子如果我们的输入为54,64,10,77,84,99。
2026-01-31 14:06:19
231
原创 Linux系列文章(5)工具
在Linux中有许多常用的开发工具,我们可以将他们和Windows中的一些软件做对比,有些是编辑器,有些是安装市场等等,我们学会这些工具,就能够在Linux系统中学会下载软件,学会编写编译代码了。
2026-01-23 09:45:36
561
原创 Linux系列文章(4)权限
Linux用户分为普通用户和root用户,在前面已经有所了解我们可以使用su命令进行用户的切换su 用户名(从root切换到普通用户)su 从普通用户切换到root用户,需要输入root用户的密码su ~ 从普通用户切换到root用户,并回到root用户的根目录,需要输入root用户的密码在普通用户需要使用root权限的情况下使用sudo命令可以短暂变成管理员但是这只是按照登陆的用户划分的,也就是“人”的权限但是我们生活中除了人有权限,物品也有权限,而这个权限的来源是拥有这个物品的人来决定的。
2026-01-22 13:09:38
657
1
原创 C++:模板
我们在创建函数或者对象时,不可避免地要进行传参,这些参数的类型可能是多样的,而模板就是为了使同样的函数或者对象能够接受不同类型的参数而产生的类型的参数化:在传参过程中编译器自动推导参数的类型,而不是指定接收某一种类型常用的模板有类模板和函数模板,因为这些代码有传参的需要且复用的价值很高。
2025-08-08 20:11:40
451
原创 C++动态内存管理:new和delete
c++实现了new和delete管理内存,实现了构造函数和析构函数的自动调用,关于new与delete的知识还有很多如定位new等,之后会详细介绍希望大家有所收获。
2025-08-06 14:28:37
362
原创 初始化列表,变量存储区域和友元变量
初始化列表是书写构造函数的一种方式,某些成员变量之只能通过初始化列表进行初始化。另外学习c++不可避免地需要知道什么样的变量存储在什么区域当中如栈,堆,静态区,常量区。
2025-08-05 21:28:15
371
原创 C++操作符重载
我们在编写c++代码时,如果编写的函数不改变本对象的数据时,尽量在函数的参数括号外面给一个const关键字,它的意思是只有const对象才能调用此函数。注意,加等和减等运算符的重载函数返回值都是引用,而相加相减运算符的重载函数返回的是临时变量,刚好符合加等减等改变源对象的值,而相加相减不改变原来对象的值,且函数中会产生中间变量。由于我们的成员变量中没有指针数据等数据,所以深拷贝和浅拷贝的结果是一样的,在遇到有指针自定义变量等变量时,就需要自己编写符合目的的赋值运算符重载函数,以实现深拷贝。
2025-08-03 15:25:58
301
原创 C++入门
对应于c语言的结构体,c++开发出了类这种功能更加强大的结构,它不光能涵盖基本变量,还能涵盖函数,能够对其本身的数据增删查改,并且有着更好的封闭性包装性。
2025-08-02 17:22:57
960
原创 C++入门
命名空间的存在是为了解决名称重复的问题,打个比方,我们家的小狗叫小白,但是小明家的小狗也可以叫小白,那么这两条小狗应该如何区分呢,我们可以在小白这个名称前加上它是哪家的,这个前缀就可以说是名字空间了。它的诞生之初是为了解决不同程序员编写的程序中命名重复的问题的。
2025-08-02 15:58:53
188
原创 数据结构初阶:排序大法
排序对于程序员对数据结构的理解和运用都有很大的提升,我们今天所学在以后的工作事件中可以有着很多的应用,例如游戏中一键整理背包物品,网页中搜索内容的排序啊,这些都是排序的应用,也许他们的逻辑更加复杂,但底层的逻辑仍然是初阶排序好的,这节结束,对于基本的排序方法我们都能有一个大概的了解,但是别人说多讲多,都不如自己敲一敲代码尝试一下,只有真正靠自己写出来代码,知识才是落到实处,加油吧,希望能有所收获图片来自网络。
2025-07-29 17:46:52
1004
原创 数据结构:树初阶
数据结构中树的应用会出现在学习工作的各个方面,所以今天我们进入数据结构中树这一章节的学习提示:以下是本篇文章正文内容,下面案例可供参考树是一种类似于树的一种数据结构,它的一个节点中存在着数据和下一层节点的指针一般数学格式如下}BTNode;需要注意的是,此示例仅为二叉树,意味着它的连接的下一层节点数为2,在这里用左孩子和右孩子来区分以上就是今天要讲的内容,本文仅仅简单介绍了树以及二叉树的使用和函数编写,重难点为层序遍历和判断是否是完全二叉树,希望能有所收获。
2025-07-23 10:23:48
924
原创 C语言文件操作
没错,C语言是可以进行文件操作的,包括文件的创建,读写关闭等操作,废话不多讲直接来看、相信大家都或多或少地听说过流的概念,流就是一种连接外部设备和数据文件的一个抽象东西我们书写数据,读取数据的通道就是流,想象流是一条河,数据在这条河里流淌,可以从电脑文件流入到电脑屏幕,可以从键盘鼠标流入到内存,显示。
2025-03-11 18:12:13
352
原创 整数浮点数在内存中的储存
我们都知道计算机在储存数据的时候是按照二进制数字储存的,那么对于我们输入的10进制整形数据来说,就需要将其转换成二进制数据才能储存。一个int类型的数据大小是4个字节,也就是32个比特位,对于有符号整型,第一个比特位一般用来存储符号位,0表示正数,1表示负数。而对于无符号整型来说,32个比特位就都是数据位,因此无符号整型要比有符号整型能够表示的数据大得多。
2025-03-04 22:48:28
423
原创 计算机存储与指针
内存当中分为许多个数据单元,每一个数据单元就类似于一个房间,里面存放的是信息,我们的中央处理器要想访问读写数据,首先要知道这个数据的位置在哪里,这个位置就是编址,可以理解为房间的门牌号,这样就可以快速精准地找到数据的位置了。引入下面这张图帮助理解。
2025-02-27 21:22:09
878
原创 函数递归的学习
递归是一种解决问题的思想,它是一种将大事化小,小事化了的思想,将一个复杂庞大的问题分解,找到一个可以重复的过程,并设置结束的标志,就可以将问题简单化。那生活中的事情举个例子:要我们计算n!在n很大时可能不能一下子将这个数计算出来,而通过递归的思想就可以很好地解决问题。虽然我们不知道n!但我们知道它等于(n-1)!*n,经过这样一个过程我们就把一个题化简了一点点。之后就可以比葫芦画瓢,将这个问题一步步拆解,最后就把所有的!符号去掉了,只剩下数据的相乘计算。
2025-02-16 20:16:29
374
原创 扫雷游戏(c语言程序设计)
到此简单的扫雷游戏就已经设计完成了,但是游戏的优化还可以继续。比如对于周围没有雷的坐标,点击后自动将周围的位置打开,这部分内容需要使用递归的办法进行优化,即函数自己调用自己的过程,递归结束的标志可以是打开的位置周围雷的个数不是0个,依次进行优化又比如,为了避免开局被炸死的情况频繁发生,可以在玩家选择一处坐标后进行初始化,让开局更加顺利。种种功能都可以加进去实验,从而创作出功能更丰富玩法更多样的游戏做游戏,需要时间的沉淀也需要各种新奇的想法,即使简单,但也可以匠心独运。
2025-01-11 11:55:30
2003
原创 函数相关知识的总结
顾名思义就是自己在程序中所书写的函数,没有什么特别的内容,若是写在不同的源文件中时,需要先声明,再使用.h是头文件的后缀,.c是C语言源文件的后缀程序员在创建项目的时候,不会把所有的代码全部写在一个程序里,都是分开的,有利于随时修改,不至于牵一发而动全身,万一写出bug不至于修复的时候出现更多的bug。
2024-12-13 21:47:50
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅