- 博客(58)
- 收藏
- 关注
原创 c++中类的继承
在c语言中会用到进行代码的重用,在c++中可以将相同的特点(有共同的特性)来进行代码的复用,在设计具体的只需要关注对象的独有的特性。
2025-09-25 02:24:24
341
原创 cpp类与对象
类(class)是C++有别于C语言的最重要的概念之一,正是因为有了类的概念,C++才拥有了所谓面向对象(OOP,即Object Original Programming)的编程模式可以理解为功能更强大的结构体。
2025-09-23 20:12:34
385
原创 线程池示例代码详解
线程的创建和销毁都是需要额外的系统资源的,如果线程的生命周期很短,那么相对于实际干活的时间,来回重复创建和销毁就显得很不划算,但也不能让线程执行完任务之后耗着不走,因此就需要一个比较科学合理的布局,来管控线程。所以就引出了概念。
2025-08-20 01:21:16
2256
原创 线程的死锁以及解决方式
同时操作共有资源引出线程的同步互斥机制防止死锁引出上述两种方式,防止死锁在线程中使用,静态变量,临时变量, 堆内存的数据需要格外注意。
2025-08-19 17:27:58
489
原创 posix信号量
POSIX 具名信号量主要用在多进程间同步互斥,其 P/V 操作与匿名版本无异,其最大的特点是存在于文件系统 /dev/shm 中,可以被系统中任意有权限的进程打开。:若程序被强行退出,或崩溃,posix信号量可能造成损坏从而导致程序死锁。关闭后的文件也是一直存在的,删除API一下。不再需要的时候应该予以关闭。使用一下进行创建和打开。
2025-08-18 20:20:46
489
原创 线程基本API
希望某个函数只被严格执行一次,并且需要在程序一开始进行执行,由于线程的并发特性,我们无法预先知晓哪条线程会对信号量进行初始化,于是就希望有一种只执行一遍的。由于线程函数的并发性,在线程中访问共享资源需要特别小心,因为这些共享资源会被多个线程争抢,形成“竞态”。:如果线程既未被分离,也未被 pthread_join,可能会导致资源泄漏(僵尸线程)。:分离线程的终止状态无法被其他线程获取,因此如果需要线程的返回值,不能使用分离。可以设置线程是否接收取消,若不接收取消则取消信号无效,接收取消会在。
2025-08-17 22:09:08
764
原创 Linux守护进程
程序在终端打开默认会在前台进程组运行在运行后加上&,例如:在终端中:程序就被放在后台进行运行,此时不接受终端的控制,但是关闭控制终端会差生挂断信号(1),进程会收到信号每当我们打开一个伪终端,就会默认调用以下函数创建一个新的会话新建一个子进程去调用,并且子进程产生一个新的会话。
2025-08-17 13:34:43
358
原创 Linux进程基础
程序:编译后产生的,格式为ELF的,存储于硬盘的文件进程:程序中的代码和数据,被加载到内存中运行的过程程序是静态的概念,进程是动态的概念getpid():获取当前程序的进程号getppid():获取父级程序进程号。
2025-08-13 10:09:26
1002
原创 虚拟机网络配置
这样虚拟机就可以正常上网了有时,如果VMware的网络参数经过多次配置导致无法再正确联网,可以通过点击上图右边图表的左下角的 还原默认设置 按钮来重置虚拟机的网络。
2025-08-12 10:25:01
349
原创 squareline的使用
如果只是用ui的话只需要创建桌面版这里亲测如果你的工程为9版本的,使用8版本创建会无法运行,别创建错了这里需要注意的文件:将生成的整个ui工程直接复制到lvgl工程文件下修改lvgl工程中的Makefile文件,添加需要包含的头文件追加需要编译的.c文件
2025-08-06 01:18:26
544
原创 工具自动生成Makefile
创建库(1)对库里的源文件进行编译行为进行知道(2)顶层cmake调用底层cmake add_subdirectory(3)指定库文件的路径link_libraries(3)为需要生成的可执行文件添加库的链接target_link_libraries。
2025-08-02 18:58:21
1138
原创 LCGL使用说明
(1)纯c与语言编程,将面向对象的思想植入c语言。(2)轻量化图形库资源,人机交互效果好,在(ios Android QT)移植性较好,但是这些平台对硬件要求较高。
2025-07-31 23:28:08
972
原创 sed编辑文件
在sed命令里,3,$s/.$//是一段用于文本处理的规则,下面这就拆分成几个部分,给你详细讲讲每个符号的含义:3,$3代表第 3 行在sed里是一个特殊符号,专门用来表示最后一行。把它们用连起来3,$,整体的意思就是“从第 3 行开始,一直到文件的最后一行”。也就是说,下面的替换操作(s/.$//)会作用在这个范围内的每一行文本上。s/原内容/新内容/这是sed里最常用的替换操作格式s就是 “substitute(替换)” 的意思,整个结构就是告诉sed。
2025-07-31 00:04:49
854
原创 shell脚本
Shell脚本基础与常用语法摘要 本文介绍了Shell脚本的基础知识和常用语法。Shell脚本可在Linux终端和Windows PowerShell中运行,常见解释器包括bash、sh等。编写脚本时需注意不同解释器的差异,通常以.sh为后缀,首行指定解释器路径(如#!/bin/bash)。基本语法包括:变量使用不需括号但字符串需引号;特殊字符如引号、通配符的使用;管道符和重定向操作;反引号执行命令。数值运算可通过双括号或declare实现。test命令用于条件判断,支持数值、字符串和文件比较。分支结构包括
2025-07-30 22:18:11
999
原创 Makefile的使用
主要作用:提升编译的效率语言类型:弱脚本语言运行逻辑:检查目标文件是否存在,将目标文件的时间戳与以来条件的时间戳进行比较,若生成的目标文件是最新的就执行。
2025-07-30 00:44:40
1078
原创 动/静态库的原理及制作
动态库就像一个仓库其中包含为可执行文件,如果有文件需要调用,就进行提取,使用动态库编译的文件因为保存的地址所以文件大小相对较小,依赖系统环境。相当于2进制的.c文件,用来编译在文件内部,并且有相对较强的可移植性,若文件采用静态库进行编译,不依赖系统环境,但是文件体积相对较大。
2025-07-28 22:10:34
1070
原创 LCD触摸屏的操作
以触摸屏为例,当手指在屏幕上滑动的时候,数据流大致是这样的:驱动层中的触摸屏驱动会源源不断地产生触摸屏相关数据,并向上递送给内核输入子系统,输入子系统进一步将这些信息规整为统一的结构体,并借助事件触发层发往对应的设备节点,至此,应用程序即可从这些设备节点读取相关信息。值得注意的是,底层驱动产生的设备数据与上层应用读取设备数据是两个完全异步的过程,彼此之间是没有耦合和约束的,例如:当底层驱动产生的触摸屏坐标信息比应用层读取的速度要快时,应用程序将会丢失一部分坐标信息。输入事件发生的时间戳,精确到微秒。
2025-07-24 16:29:45
1000
原创 开发板系统烧写
解压DriverAssitant_v5.12.zip,打开里面的应用程序,直接双击安装。解压烧写工具RKDevTool_Release_v2.92,打开里面的应用程序。重启开发板,通过先重启按键在紧急按下音量+,进入系统的烧写状态。升级之后的系统就开始支持USB协议adb与正常的编译。查看设备管理器是否出现。
2025-07-22 20:07:19
998
1
原创 芯片内置Linux连接终端连接
电源线,usb线连接ch340芯一般原理图标记如果显示下载失败先删除之后进行下载3.配置Mobaxtern(1)点击session->serial(2)点击Advanced Serial setting,选择波特率(Speed)为1500000具体自己的型号是多少需要查询,我这边是RK3568(3)点击重启按键,查看是否能查看到系统打印信息,并且输入linux命令进行测试。
2025-07-21 13:51:04
635
原创 stat,fstat, lstat, fstatat详解
/将时间戳转换为字符数组。例如st_mode得到文件类型的具体操作需要去man手册中inode(7)查找。执行成功则返回0,失败返回-1,错误代码存于errno。statbuf:返回一个结构体,记录指定文件下的信息。直接操作已打开的文件描述符,而不是通过文件路径。成功返回字符串的首地址,失败返回NULL;pathname:指定文件的路径。获取指定路径下文件的权限值。结构体中含有的时间需要查看。
2025-07-20 18:43:16
1142
原创 系统IO对于目录的操作
类型名称含义ino_td_ino文件节点号off_td_off;目录项的偏移量d_reclen;该目录项的大小d_type;文件的类型char文件名。
2025-07-18 16:32:30
290
原创 C库-标准IO
使用fopen()函数打开文件。使用fclose()函数关闭文件。使用fread()、 fgets()、fscanf()等函数读取文件。使用fwrite() 、 fprintf() 、fputc()等函数写入文件。使用fseek()函数移动文件位置指针。使用feof()、ferror()等函数检查文件状态。
2025-07-18 01:35:10
963
原创 Linux系统IO
两个函数原型,两个参数的函数适用于打开已经有的文件下面的三个参数适用于没有该文件进行创建,mode用来指定创建时文件的参数,其中mode参数可以用来8进制来表述。
2025-07-17 14:30:24
617
原创 文件IO基本概念
任何一门语言在任何一个平台,一定会有文件上的读写/多任务的并发/网络通信,接下来介绍简单的文件io(input output),在linux下有“一切都是文件”为了让编程具备统一性。
2025-07-16 11:44:57
557
原创 Linux基础命令
1.VMware(独立环境), WSL(非独立环境), 服务器2Ubuntu (国际版,)两者区别不大,优麒麟属于对于国内。
2025-07-11 21:30:34
1216
原创 Linux基础
文件类型 文件权限 硬链接数 创建文件的用户名 该文件所在的组 文件大小 文件更新日期 文件名字。rwx:文件拥有者的权限(创建文件的人) 111 7。touch:更新文件操作时间(如果文件不存在则创建文件)r-x:文件所在组的成员权限 101 5。ls 目标文件 查看指定文件的信息。-:普通常规文件(硬盘存储类文件)l:软链接文件(快捷方式类型)s:套接字文件(进程间通信)c:字符设备驱动文件(硬件)p:管道文件(进程间通信)b:块设备驱动文件(硬件)
2025-07-11 20:45:41
310
原创 Winscp使用
左边是电脑上的内容,右边为服务器Linux环境下的系统,通过拖拽直接copy文件(双向传输)填入服务器的地址,在终端输入ifconfig命令。
2025-07-08 01:37:47
417
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅