- 博客(23)
- 收藏
- 关注
原创 C++文件操作
本文介绍了C++中文本文件和二进制文件的读写操作流程。文本文件操作分为五个步骤:包含头文件、创建流对象、打开文件、读写数据、关闭文件。其中文本文件读取提供了四种方式,写文件使用ofstream流对象。二进制文件操作同样遵循五个步骤,但需要使用ios::binary标志打开文件,读写操作与文本文件类似。两种文件类型最后都需要关闭文件流对象。这些操作都需要包含<fstream>头文件,体现了C++文件处理的基本流程。
2025-11-30 20:58:55
219
原创 进程回收---wait与waitpid函数的详细解析
本文通过厨房比喻形象解释了进程回收机制。父进程使用wait函数会阻塞等待所有子进程完成任务,确保资源回收并获取子进程状态,防止出现僵尸进程;而不使用wait则父进程会继续执行而不等待子进程。文章还介绍了wait和waitpid系统调用的区别,包括阻塞与非阻塞回收方式,以及返回值含义。waitpid的WNOHANG选项可实现非阻塞回收,当子进程未结束时父进程不会被阻塞。
2025-11-29 15:17:14
327
原创 关于文件操作的详细解读
绝对路径:以盘符开始,C:\aaa\a.txt相对路径:参照物:当前项目不以盘符开始,aaa\a.txt路径是以字符串的形式来表示的。
2025-11-16 17:52:11
816
原创 Linux权限信息解读
针对文件夹,表示可以更改工作目录到此文件夹,即cd进入。位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。针对文件夹,可以在文件夹内:创建、删除、改名等操作。,针对文件表示可以将文件作为程序执行。针对文件夹,可以查看文件夹内容,如。,表示文件、文件夹的权限控制信息。,权限细节,权限细节总共分为10。,表示文件、文件夹所属用户组。,针对文件表示可以修改此文件。,表示文件、文件夹所属用户。,针对文件可以查看文件内容。针对文件、文件夹的不同,其它用户的权限是:有。
2025-11-16 14:07:20
274
原创 内存四区、new操作符
C++程序在执行时,将内存大方向划分为4个区域* 代码区:存放函数体的二进制代码,由操作系统进行管理的* 全局区:存放全局变量和静态变量以及常量* 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等* 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。
2025-10-31 16:57:31
513
1
原创 关于函数重载的笔记
3、函数参数类型不同,或者个数不同,或者顺序不同。函数重载就是可以让函数名相同,提高复用性。注意:函数的返回值不可以作为函数重载的条件。
2025-10-31 15:21:54
407
原创 修改权限控制命令chmod与chown
语法:chmod [-R] 权限 文件或文件夹。,对文件夹内的全部内容应用同样的操作。命令,修改文件、文件夹的权限信息。注意,只有文件、文件夹的所属用户或。注:以上参考黑马程序员Linux。
2025-08-18 16:17:44
206
原创 EXTI-外部中断和事件控制器
在编写中断服务函数时要清楚中断标志位,因为STM32在产生中断信号后,中断标志位会被硬件置1,所以在处理外部中断信号时,中断服务程序应该在最后的清除操作中将中断标志位重新设置为“0”,以保证系统正常运行。如果中断标志位没有被清除,那么即使该中断信号已经被处理完毕,处理器仍然会认为该中断信号还没有被处理,从而一直处于中断状态,无法处理下一次中断。在配置EXTI模块之前,要开启AFIO时钟,使能AFIO模块。EXTI模块可以捕捉脉冲信号的上升沿和下降沿。EXTI模块也是STM32内的一个外设。
2025-08-17 22:28:48
190
原创 定时器-时基单元
高级控制定时器(TIM1和TIM8)基本定时器(TIM6和TIM7)通用定时器(TIMx)在STM32F1系列中,内部含有1个高级定时器(TIM1),3个通用定时器(TIM2、TIM3、TIM4)。
2025-08-16 16:12:07
1259
原创 字符串常见的函数
细节:把第二个字符串中全部内容,拷贝到第一个字符串中,把第一个字符串里面原有的内容给覆盖了。前提二:第一个字符串中空间可以容纳第二个字符串的完整内容。前提二:第一个字符串中剩余的空间可以容纳拼接的字符串。细节1:strlen这个函数在统计长度的时候,是不计算结束标记的。细节1:把第二个字符串中全部的内容,拷贝到第一个字符串的末尾。细节:在比较的时候,要求顺序和内容完全一致,才叫做字符串一样。前提一:第一个字符串时可以被修改的。前提一:第一个字符串时可以被修改的。只能转换英文的大小写,不能修改中文的大小写。
2025-07-30 14:25:03
763
原创 关于打印字符串数组的一个小细节(注意点)
因此,`strArr[i]`的类型是`char*`(指向字符的指针),指向该行(即该字符串)的第一个字符。因此,在代码中:这里将`strArr[i]`(即第i个字符串的首地址)赋值给了`str`,`str`就是一个指向字符的指针,即指向字符串的指针。然后,在`printf`函数中,使用`%s`格式说明符来打印字符串,它要求一个指向字符的指针(即字符串的起始地址)。`,这实际上是错误的,因为`*str`是一个字符(例如,第一个学生的名字的第一个字符'z'),而`%s`需要一个指针。
2025-07-28 22:10:10
304
原创 二维数组的两种定义格式和遍历方式
arr[2]:表示二维数组当中的第三个一维数组,{ 111,222,333,444,555 }arr[1]:表示二维数组当中的第二个一维数组,{ 11,22,33,44,55 }arr[0]:表示二维数组当中的第一个一维数组,{1,2,3,4,5}核心:事先先把所有的一维数组定义完毕,再放入到二维数组当中。数据类型 arr[m][n]=n:表示每一个一维数组的长度。m:表示二维数组的长度。利用索引的方式进行遍历。
2025-07-28 21:36:19
257
原创 深度解析GPIO的四种输出模式
STM32F103C8T6共有GPIOA(16个),GPIOB(16个),GPIOC(3个),GPIOD(2个),一共37个GPIO外设。开漏输出:P-MOS管始终断开,输出数据寄存器写0,引脚输出低电平,输出数据寄存器写1引脚高阻状态。复用:通过片上其他外设CPU给输出数据寄存器写值,控制引脚高低电平。通用:直接通过CPU给输出数据寄存器写值,控制引脚高低电平。推:P-MOS管闭合,N-MOS管断开,输出数据寄存器写1。挽:P-MOS管断开,N-MOS管闭合,输出数据寄存器写0。
2025-07-28 14:08:47
487
原创 C语言两种定义字符串的方式以及两种方式注意的细节
细节1:在底层,实际存储的时候,C语言还是会帮我们把字符串"abcd"转换成字符数组进行保存,并且在末尾还要加上'\0'。细节1:在底层,实际存储的时候,C语言还是会帮我们把字符串"abc"转换成字符数组进行保存,并且在末尾还要加上'\0'。在创建abcd的时候,会检查只读常量区里面有没有abcd,如果没有才会创建新的,如果已经有了,不会创建新的,而是进行复用。细节3:字符数组+双引号的方式定义字符串,内容是可以发生改变的。
2025-07-26 20:09:22
2624
原创 数组指针的细节
sizeof运算的时候,不会退化,arr还是整体。arr参与计算的时候,会退化为第一个元素的指针。&arr获取地址的时候,不会退化。
2025-07-25 16:30:17
132
原创 指针运算有意义的操作和无意义的操作
指针跟整数进行加减操作(每次移动一个步长)指针跟指针进行减操作(间隔步长)指针跟指针进行加、乘、除操作。指针跟整数进行乘除操作。指针运算有意义的操作。
2025-07-22 21:36:06
165
原创 STM32F1系列,GPIO时钟树配置时,为什么使用RCC_APB2PeriphClockCmd函数,不使用RCC_AHBPeriphClockCmd和RCC_APB1PeriphClockCmd函数
STM32的外设时钟分为几个总线:AHB、APB1、APB2。不同系列的具体设计可能有些差异,但基本结构是类似的。GPIO模块在大多数STM32系列中都是挂在APB2总线上的,比如在STM32F1系列中就是这样。因此开启GPIO时钟自然就要用APB2总线的时钟控制函数。在F1系列中,AHB总线上的外设比较少,主要是SDIO、USB等;APB1上则是定时器2-7、UART2-5等低速外设。GPIO都不在这些总线上,所以自然不能用这些函数来开启GPIO时钟。
2025-07-22 16:25:32
553
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅