自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

青椒*^_^*凤爪爪的博客

总结,是一种很有效的学习方式。≧◔◡◔≦ 有志者、事竟成,破釜沉舟,百二秦关终属楚;苦心人、天不负,卧薪尝胆,三千越甲可吞吴。

  • 博客(96)
  • 资源 (14)
  • 收藏
  • 关注

原创 windows -- 使用VSCode + CMake + MinGW搭建C/C++编译、调试、运行环境

前面编辑发送的数据结构系列文章,用到了在 windows 系统下使用 VSCode+CMake+MinGW 工具使用编辑、调试、运行的一通 piapia~ 的操作,那么有小伙伴询问我相关的设置、配置的问题,今天难得有时间就详细的说明一下。希望能够帮到更多的小伙伴。嘻嘻嘻嘻。。。。。

2020-04-06 22:21:24 14481 52

原创 OpenWRT配置 -- 修改用户名、密码以及网页用户名的修改

openwrt系统默认的用户名是root,并且web页登录页面也默认是填充用户名root的状态,所以在考虑到安全性以及自己的个性,所以需要自己制定自己喜欢的用户名和密码。一、修改密码1、在openwrt开发板上密码使用指令 passwd,直接输入密码即可完成密码重置。2、修改源码实现实现密码的永久指定现在开发板上使用指令 passwd 修改密码,然后将/etc/shadow ...

2020-01-15 09:56:35 43377 2

原创 Linux -- 使用netfilter_queue修改数据包以及需要的环境搭建

环境:ubuntu 16.04 64bitLTS下面的内容只是一些安装测试的步骤和方法的记录,并没有什么实质性和原理的说明,主要为作者本人记录的远程笔记,如果有幸对您也有帮助,请您顺手顶一下,如果您觉得您是在看不下去,也请不要喷我,毕竟学习不易,小白辛苦的学习还是需要鼓励的,先谢谢您呐!(滑稽狗头.jpg)在项目中需要使用netfilter_queue修改数据包,然后习惯性的先找了度娘...

2019-11-24 01:54:02 12609 6

原创 Xshell -- SSH无法连接linux服务器的几个坑

莫名其妙的ssh就连接不上服务器了,明明之前还是好用的呢,就简单的提示如下:图1 连接失败提示1、看看是不是因为防火墙的原因呢sudo ufw status图2 防火墙状态看来防火墙是关闭的,那么打开防火墙再试试呢(反正不知道可不可以,试试再说。。。)sudo ufw enable/disable 使能防火墙并且开机自启动/不使能防火墙图3 打开防...

2019-07-24 16:40:36 21759 8

原创 Linux -- Makefile的学习笔记以及多级目录下Makefile的编写

一、Make简介:工程管理器,顾名思义,是指管理较多的文件,Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件文件的内容来执行大量的编译工作,Make将只编译改动的代码文件,而不用完全编译。Makefile文件一般和项目的其他源文件放在同一个目录下。在机器上可以同时存在许多不同的m...

2019-03-11 18:32:53 38018 9

原创 VScode -- 调试C语言的设置(win10,Linux)

作为一个程序猿,编程的时候不能方便的进行在线调试是多么痛苦的事情呀,虽然在Linux环境下GDB调试很方便,但是作为小脑容量+手残党的小白来说,GDB真的很烦呀!直到在2018年的4月份的一个月高风黑的夜晚,遇到了Vscode……中途好长时间没有在用Vscode调试,直到最近某一天想写一个module程序,在调试的时候竟然告诉我,属性已经弃用……,晴天霹雳呀,我的天!所以,痛定思痛,没有一...

2018-12-21 12:02:26 26823 6

原创 C语言 -- 字符串和十六进制的相互转换方式

C语言的字符串操作并不像java,Csharp那样提供直接的方法,简单粗暴。所以,在转换的时候往往费力费时,近日做项目正好用到和java程序通讯,java发送过来的数据是十六进制数字组成的字符串,解析的时候颇费心思才算完成,所以,权在此做一笔记,方便以后查看,以及需要帮助的童鞋,当然,有问题欢迎随时交流,一同进步,欧耶!~一、将数组转换为十六进制同值的字符串 读取数组中的数字,打印成字...

2018-10-17 16:53:21 57613 6

原创 C语言 -- 字符串中根据特定字符(串)分割

C语言字符串操作函数有很多,这里举出需要用到的,其他请自行查找。1、len = strlen(p) ;//取字符串长度原型:size_t strlen(const char *s);功能:统计字符串string中字符的个数,字符串的长度在size_t 返回值中。注意:strlen函数的功能是计算字符串的实际长度,不包括'\0'在内。另外,strlen函数也可以直接测试字符串常...

2018-10-16 13:41:58 23495 1

原创 Win环境下一种提高延时精度的方法 --- 100ms的延时改进(CPU低)

win环境下一种提高延时精度的方式,仅作为参考。

2023-08-26 10:40:25 412

原创 Linux -- Ubuntu 修改Home目录下的中文目录为英文

在安装Ubuntu系统时如果选则了中文安装系统,则在安装完成后默认在home目录下自动创建几个常用的目录,并且目录名称自动选择为安装系统时选择的语言。界面上操作回方便使用,但是如果在终端上操作就会很感到很忧伤,因为你需要在终端敲入中文(Ubuntu 16.04终端支持中文输入,Ubuntu 14.04也可以,(博主自己为ubuntu 18.04也可)但具体在哪一个版本开始支持的就不了解了),这种输入方式会让人极度不习惯。

2022-10-24 20:30:31 4085 3

原创 Linux系统下基于setitimer的高精度嵌入式软件定时器实现方案

基于上一篇博文Linux环境下的setitimer的延时/定时器的使用,我们已经了解定时器 setitimer setitimer 在同一个进程中只能使用一个的缺点,作为一个嵌入式的开发人员总觉得有点说不出的苦恼,那么本博文将基于这种力不从心的苦恼,编写一个满足基本要求的软件定时器。...

2022-07-02 22:39:27 1584

原创 Linux环境下搭建本地git服务和客户端(超级详细)

本文主要说明在本地电脑上部署git服务器和客户端的过程。设置的过程详细的令人发指,如果是初学或者不熟悉git的相关指令的话,那么本文将会是最优的指导

2022-06-19 22:37:55 2682 1

原创 利用VS2010生成win32和win64的动态库的方法(详细图文说明)

利用VS2010生成win32和win64的动态库的方法,用超级详细的步骤加上图片示意,说明动态库的生成与测试的完成的详细的过程,非常适合新手尝试。

2022-06-16 22:14:17 3130

原创 Linux环境下的setitimer的延时/定时器的使用

在linux C嵌入式开发编程中,经常会遇到精度要求比较高的周期性的定时事件,对于一般性要求 1ms 级别的精度,linux下可以使用 select() 函数实现,但是 select() 有一个弱点就是其 定时的误差会累积,运行到一定程度的时候,实际误差可能已经超出了允许的范围,那么在这种情况,setitimer() 函数可以解决误差累积这样的问题。...

2022-05-22 22:43:43 5209

原创 Makefile自动搜所目录及子目录下的的所有文件、自动生成编译目录

makefile进行项目管理,进行多目录文件编译、编译过程中自动生成编译目录、自动搜所当前目录下的所有源文件、生成静态库、合并静态库、静态库中函数的交叉调用等。根据一个比较特殊的需求而编写的一个工程模板,内容比较杂单没有进行系统性的解释说明。

2022-05-15 22:18:48 7828 5

原创 Linux系统自己打造的vim配置文件(自用)

做嵌入式开发,经常能够在一些新的环境下配置各种各样的环境,做为默认使用的编辑器,VIM非常重要,但是每次都要折腾来折腾去的配置,所以今天特意记录一下,方便后续直接使用。

2022-05-13 21:48:14 529

原创 Linux环境设置用户自定义应用的开机自启动

做 Linux 嵌入式开发,经常会遇到要设置自己的应用程序在系统开机的时候自动启动,并且一般情况我们不想安装一些额外的软件去实现此种需求。那么直接根据当前系统自带的默认的一些工具实现用户软件的开机自启动。

2022-05-09 22:37:23 6450

原创 C#实现 -- 自动获取剪贴板的文字并且自动发送

自动发消息的一个工具:模拟 Ctrl + V 粘贴,然后 模拟 回车 按键将消息发送。

2022-05-02 23:29:17 1313

原创 markdown中让表格居中的写法

示例表格序号偏移说明10表格说明22表格说明34表格说明实现的代码是下面这样的。<!-- 让表格居中显示的风格 --><style>.center { width: auto; display: table; margin-left: auto; margin-right: auto;}</style><p align="center"><font fac..

2022-04-21 22:07:56 13553

原创 Linux -- 多线程编程之 - 基础实现二

为了进一步减少处理器的空转时间,支持多处理器以及减少上下文切换的开销,进程在烟花中出现了另一个概念 --- 线程,它是进程内独立的一条运行路线,是内核调度的最小单元,也被成为轻量级进程。线程具有高效性和可操作性,在嵌入式发开中运用的十分广泛。

2022-03-17 23:11:10 2776

原创 Linux -- 多线程编程之 - 基础实现一

为了进一步减少处理器的空转时间,支持多处理器以及减少上下文切换的开销,进程在烟花中出现了另一个概念 --- 线程,它是进程内独立的一条运行路线,是内核调度的最小单元,也被成为轻量级进程。线程具有高效性和可操作性,在嵌入式发开中运用的十分广泛。

2021-12-27 22:42:13 5170 1

原创 Linux -- 多进程编程之 - 守护进程的出错处理

因为守护进程完全脱离终端控制,所以不能像其它进程一样将错误信息输出到控制终端。所以如何处理错误消息是一个问题。在Linux系统中,一般通用的办法是使用syslog服务,将程序中出错信息输入到系统日志文件中(如"/var/log/messages",此文件需要用用root权限的用户查看),从而可以直观地看到程序的问题所在。在不同的Linux发行版中,系统日志的文件路径全名可能有所不同(比如可能是"/var/log/syslog")。

2021-12-05 21:53:40 6281

原创 Linux -- 多进程编程之 - 守护进程

守护进程是一个生存期较长的进程,他常常在系统引导装入是启动,仅仅在系统关闭的才终止。也就是通常所说的 Daemon 进程,是 Linux 中的后台服务进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 Linux 中很多系统服务都是通过守护进程实现的。

2021-11-27 23:37:31 7092

原创 Linux -- 多进程编程之 - 僵尸进程

僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。

2021-11-13 23:53:34 5566 4

原创 Linux -- 多进程编程之 - 基础实现、孤儿进程

在Linux 中创建一个新进程的方法是使用 fork()函数。

2021-11-06 23:01:21 7052

原创 Linux -- 多任务机制(任务、进程、线程)介绍

多任务处理是指用户可以在同一时间内运行多个应用程序,每个正在执行的应用程序被称为一个任务。 Linux就是一个支持多任务的操作系统,多任务操作系统使用某种调度策略支持多个任务并发执行。事实上。(单核)处理器在某一时刻只能执行一个任务。每个任务创建时被分配时间片(几十到上百毫秒),任务执行(占用CPU)时,时间片递减,操作系统会在当前任务的时间片用完时调度执行其他任务。由于任务会频繁地切换执行,因此给用户多个任务同时运行的感觉。多任务操作系统中通常有3个基本概念:任务、进程、线程。

2021-11-04 23:04:25 5844

原创 Linux -- exit()函数、_exit()函数、return的说明与使用

exit()函数和_exit()函数都是用来 终止进程 的。return是C语言关键字,主要用于子函数的返回,标识这个子函数的结束。

2021-10-24 09:15:00 10153

原创 OpenWRT编译 -- 出现‘...net/mac80211/mac80211.ko‘ is missing的错误

大爷来进来玩呀(*^▽^*)

2021-10-24 00:36:47 5533 15

原创 Linux -- Linux下库的生成和使用

在写程序的过程中,基本上都要依赖各种各样的库,比如标准C库等等,使用库也很大程度上减少了重复不必要的编程,也使得编写的程序精简不少。所以,当我们在编程中用到自己开发的使用比较频繁的资源的时候,也希望能够编译成库的模式。在需要用到的时候直接引用即可。那么接下来就简单描述下在 Linux 环进行的动态库和静态库的生成和使用。

2021-03-19 17:43:09 5573 4

原创 C语言 -- string.h中函数功能详解与手动实现 - 03(常用函数memchr、strchr、strstr、strspn、strlen、strnlen...)

一般系统中提供一个标准的 C库 string.h ,用于操作各种操作字符串 strxxx、内存 memxxx 的库函数。作为 C标准库 的一部分,它们被强制要求可以在任何支持 C语言 的平台上运行。 不管是在面试中还是平时的工作中,对 string.h 文件中的大部分的函数的都有涉及,并且会经常遇到手撕某个或者某几个库函数的题目,其重要程度可想而知。

2021-01-27 22:20:41 3792

原创 C语言 -- string.h中函数功能详解与手动实现 - 02(常用函数memcpy、memmove、strcpy、strdup、strcat、strtok...)

一般系统中提供一个标准的 C库 string.h ,用于操作各种操作字符串 strxxx、内存 memxxx 的库函数。作为 C标准库 的一部分,它们被强制要求可以在任何支持 C语言 的平台上运行。 不管是在面试中还是平时的工作中,对 string.h 文件中的大部分的函数的都有涉及,并且会经常遇到手撕某个或者某几个库函数的题目,其重要程度可想而知。

2021-01-25 22:14:48 2895 12

原创 C语言 -- string.h中函数功能详解与手动实现 - 01(常用函数memset、memcmp、strcmp、strncmp ...)

一般系统中提供一个标准的C库 string.h ,用于操作各种操作字符串 strxxx、内存 memxxx 的库函数。作为 C标准库 的一部分,它们被强制要求可以在任何支持 C语言 的平台上运行。 不管是在面试中还是平时的工作中,对 string.h 文件中的大部分的函数的都有涉及,并且会经常遇到手撕某个或者某几个库函数的题目,其重要程度可想而知。

2021-01-24 14:43:42 3632 7

原创 数据结构(廿六) -- C语言版 -- 图 - 图的遍历 -- 邻接表 - 深度/广度优先遍历/搜索(DFS、BFS)

图是一种非线性的数据结构,图的遍历指的是:从图中的某一顶点出发,沿着一些边访问图中所有的顶点,使得每个顶点都被访问且仅被访问一次。根据遍历路径的不同,通常有两种遍历图的方法:深度优先遍历(Depth First Search)和广度优先遍历(Breadth First Search)。它们对无向图和有向图都适用,图的遍历算法是求解图的连通性问题、拓扑排序和求关键路径等算法的基础。

2020-12-19 19:16:50 5105 28

原创 数据结构(廿五) -- C语言版 -- 图 - 图的遍历 -- 邻接矩阵 - 深度/广度优先遍历/搜索(DFS、BFS)

图是一种非线性的数据结构,图的遍历指的是:从图中的某一顶点出发,沿着一些边访问图中所有的顶点,使得每个顶点都被访问且仅被访问一次。根据遍历路径的不同,通常有两种遍历图的方法:深度优先遍历(Depth First Search)和广度优先遍历(Breadth First Search)。它们对无向图和有向图都适用,图的遍历算法是求解图的连通性问题、拓扑排序和求关键路径等算法的基础。

2020-12-08 22:29:42 6346 8

原创 OpenWRT编译 -- 嵌入式系统Openwrt移植SQLite3数据库

SQLite是一个进程内库,它实现了一个自包含、无服务器、零配置、事务性SQL数据库引擎。SQLite的代码在公共域中,因此可以免费用于任何目的,无论是商业还是私有。SQLite是世界上部署最广泛的数据库,其应用程序比我们所能统计的还要多,其中包括几个引人注目的项目。SQLite是一个嵌入式SQL数据库引擎。与大多数其他SQL数据库不同,SQLite没有单独的服务器进程。SQLite直接读写普通磁盘文件。包含多个表、索引、触发器和视图的完整SQL数据库包含在单个磁盘文件中。

2020-12-05 19:05:01 4514

原创 Android -- 让我一个外行来告诉你Android的多Activity切换中保持Socket长连接的一个实现方法

主要介绍并实现在android中的socket客户端在多个界面切换时保持socket的长链接的实现说明。

2020-11-25 10:16:44 6126 38

原创 数据结构(廿四) -- C语言版 -- 图 - 图的存储结构 -- 十字链表、邻接多重表、 边集数组

在图中任何两个顶点之间都可能存在联系,所以图的存储结构应该需要根据具体问题的要求来进行设计。从图的逻辑结构定义来看,图中任何一个顶点都可以看成是第一个顶点。常用的存储结构有邻接矩阵、邻接表(逆邻接表)、十字链表、邻接多重表、 边集数组。

2020-09-05 22:56:42 7616 9

原创 数据结构(廿三) -- C语言版 -- 图 - 图的存储结构 -- 邻接表、逆邻接表

在图中任何两个顶点之间都可能存在联系,所以图的存储结构应该需要根据具体问题的要求来进行设计。从图的逻辑结构定义来看,图中任何一个顶点都可以看成是第一个顶点。常用的存储结构有邻接矩阵、邻接表(逆邻接表)、十字链表、邻接多重表、 边集数组。那么本博文将带你就 “邻接表(逆邻接表)” 来窥探一二。。。

2020-08-15 19:22:48 14019 1

原创 VSCode -- VSCode美化、设置等项目代码设置

VSCode美化、设置等项目代码设置,就是几个配置文件的内容,以及一张显示效果图。

2020-08-13 23:11:09 5300

原创 数据结构(廿二) -- C语言版 -- 图 - 图的存储结构 -- 邻接矩阵

在图中任何两个顶点之间都可能存在联系,所以图的存储结构应该需要根据具体问题的要求来进行设计。常用的存储结构有邻接矩阵、邻接表(逆邻接表)、十字链表、邻接多重表、 边集数组。那么本博文将带你就“邻接矩阵”来窥探一二。。。

2020-08-02 01:01:24 9101 19

linux下基于setitimer高精度多通道软件定时器

基于Linux环境下的setitimer的延时/定时器的使用, setitimer 在同一个进程中只能使用一个的缺点,作为一个嵌入式的开发人员总觉得有点说不出的苦恼,那么本资源即为基于linux环境的一些函数,编写一个满足基本要求的软件定时器。 本资源为博文同步的实现的源码,已经经过了金本测试,效果较为理想,有需要或者有兴趣的可以下载试试。 原文链接:https://blog.csdn.net/songshuai0223/article/details/124799672

2022-05-19

Makefile自动搜所目录及子目录下的的所有文件、自动生成编译目录

Makefile自动搜所目录及子目录下的的所有文件、自动生成编译目录,主要实现的功能入校描述: 1. myMath、myRecord、myString要分别能够单独生成各自对应的 .a 静态库文件 2. 将生成的 .a 文件统一放在根目录下 lib 专用文件夹中 3. myString 下要将以来的.a文件包含到生成的 .a 文件中 4. 文件的目录具有可扩展性,后续可随时添加文件或者文件夹 5. 在根目录下进行 make 同样生成上述三个 .a 文件到固定文件夹中 6. 在根目录下进行 make 需要将生成的这些 .a 文件和外部提供的其他的 .a 最终编译成一个可执行文件 7. 将最终生成的可执行文件放置在 bin 文件专用的文件夹中 8. … 原文链接:https://blog.csdn.net/songshuai0223/article/details/124676839

2022-05-15

数据结构-树的实现代码(C语言版).rar

数据结构 -- C语言版 -- 树的部分实现代码(树的创建、遍历、线索化、线索化的前驱和后继等、霍夫曼编码),详细介绍参考数据结构--树的系列博文。链接为:https://blog.csdn.net/songshuai0223/category_9742561.html。

2021-10-27

数据结构-队列的实现代码(C语言版).rar

数据结构 -- C语言版 -- 队列的部分实现代码,详细介绍参考数据结构--队列的系列博文。链接为:https://blog.csdn.net/songshuai0223/category_9742561.html。

2021-10-27

数据结构-栈的实现代码(C语言版).rar

数据结构 -- C语言版 -- 栈的部分实现代码(栈的实现、栈的应用),详细介绍参考数据结构--栈的系列博文。链接为:https://blog.csdn.net/songshuai0223/category_9742561.html。

2021-10-27

数据结构-链表的实现代码(C语言版).rar

数据结构 -- C语言版 -- 链表的部分实现代码(单向链表、双向链表、循环链表、约瑟夫环等),详细介绍参考数据结构--链表的系列博文。链接为:https://blog.csdn.net/songshuai0223/category_9742561.html。

2021-10-27

数据结构-图的实现代码(C语言版).rar

数据结构 -- C语言版 -- 图的部分实现代码,详细介绍参考数据结构--图的系列博文。链接为:https://blog.csdn.net/songshuai0223/category_9742561.html。

2021-10-27

Android的多Activity切换中保持Socket长连接的一个实现方法

主要介绍并实现在android中的socket客户端在多个界面切换时保持socket的长链接的实现说明。博文https://blog.csdn.net/zhemingbuhao/article/details/108807065的配套实现源码

2020-09-26

SerialPortTest.rar

本资源为在Visual Studio 2010工具下使用C#开发语言编写的串口助手的源代码以及工具,基本完成串口的查找,打开,关闭,数据的发送,接收,数据基本的转换等功能,基本属于比较基础的功能,可以根据个人的需求直接进行继续开发

2020-05-05

字符串转换工具-含源码.rar

一、在C语言的开发、数据分析、尤其是跟别人进行联合编程、联合调试的过程中,经常会遇到各种各样的数据的格式,有时候各个样式的数据转换花去大量的时间,最后还不一定就能百分百的转换正确,所以,在空余时间自己弄了一个简单的工具,来在需要的时候解决转换的问题。 说明,目前使用的数据格式要求是 用两个字符来表示一个数字,有效字符为0-9,A-F,a-f 如果数字小于16,用十六进制表示的时候,在前面加0,比如:0A 除了CRC计算对字符有特殊要求外(0-9,A-F,a-f),其他的各项对字符不做判断,默认为有效字符 在计算CRC校验和的时候,最好保证数字字符均为有效字符 二、目前支持的转换 1、主界面显示效果 2、增删空格功能 3、增删十六进制前缀0x 4、增删逗号(数据分割) 5、计算CRC 6、大小写转换 7、退出

2020-02-15

nfqueue-tcpip-socket.rar

在linux环境下,使用libnetfilter_queue进行网络数据内容的修改并且将数据返回到用户空间给对应的应用程序使用,其中: 1、文件夹nfqueue-tcpip中实现数据抓取-修改-发送的工作,只需要在linux环境下使用 make 即可生成对应的可执行程序,需要以root权限去执行 2、文件夹socket-tcp中实现socket的tcp客户端和服务端的代码,只需在linux下环境下make即可生成 server和client的可执行程序

2019-11-24

C#下TCPIP的客户端和服务端的代码-winform

本资源是C#语言编写的关于TCP/IP的实现服务端和客户端的通讯的工程代码,主要编程IDE使用的Microsoft Visual Studio 2010。需要先运行服务器端,然后再运行客户端才能正常工作

2019-02-25

生成MD5 32byte(256bit)的方法

本资源是在Linux环境下生成文件的md5检验和,以十六进制字符串和十六进制的方式输出,在运行之前,先修改Makefile中TestFile为你需要计算MD5的文件名称,然后可以直接在终端使用命令make直接运行

2019-02-25

基于单片机的液压马达转速和温度监测系统设计

基于瑞萨单片机的液压马达温度和转速检测系统,分为现场检测节点和适配器两个部分,各部分功能均已实现。经本人实测,绝对好用!

2015-07-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除