自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 资源 (14)
  • 收藏
  • 关注

原创 在长字符串中提取IP地址

(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})将匹配任何四个数字序列,并用点号分隔它们。然后,它使用regex_search循环遍历输入字符串,并使用变量matches来存储关于匹配项的信息。对于每个匹配项,它将IP地址提取为match字符串,并调用is_valid_ip_address函数来验证它是否有效。最后,is_valid_ip_address函数使用另一个正则表达式来验证IP地址的格式。如果它与模式匹配,将返回true,否则将返回false。

2023-09-04 13:12:42 250

原创 linux进程间的7种通信方式全解析及代码示例

管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。

2023-09-04 11:47:29 1001

原创 arm开发板 GDB远程调试方法

1.在linux下开发,免不了使用gdb调试,但是linux下开发嵌入式,都是跑在ARM板子上的,网上有很多GDB的基础教程,但是能在ARM开发板用的时候,会有各种问题。比如:*.cpp: No such file or directory.这是因为用gcc编译的时候,代码还是在本地,并没有在arm平台上来。所以说还是有必要出一个arm端使用gdb教程。

2023-08-18 15:09:33 1533

原创 arm海思启动udev的错误

这样就能写出很多可能非常有用的实用程序,而它已经很好了,普通用户就可以写出脚本去做一些事情,比如当某个硬盘驱动器插入时,执行某个任务。当你理解了 udev 的工作原理,你就可以用它去做各种事情,比如当一个游戏手柄连接后加载一个指定的驱动程序,或者当你用于备份的驱动器连接后,自动执行备份工作。该错误通常出现在系统启动时,当 udev 守护程序启动时,如果系统没有足够的随机数种子,就会出现该错误。随机数种子用于创建随机数,在 Linux 中,随机数种子是通过读取 /dev/urandom 设备文件来获取的。

2023-07-04 16:00:49 1481

原创 linux从alsa驱动框架中读取pcm数据源代码

二是plughw:0,0;(设备自适应接口,编程者不必关心硬件,如果软件层设置的参数与硬件支持参数不一致则ALSA会自动转换数据区匹配;0:0表示设备号和次设备号subdevice)(对于硬件参数软件必须设置一致)不知道设备号的可以用arecord -l命令获取。具体的步骤,我在下面的代码的注释写的很清楚了.三是default:0;ALSA编程细节分析。四是default。

2023-06-25 15:34:50 403

原创 64位hi3531d编译QT5.15.10源码

###1.修改qt库的qmake.conf配置文件,在qt源码解压后的qtbase/mkspesc文件夹下,我的是linux-aarch64-gnu-g++,如果是32位的arm开发板,一般是linux-arm-gnueabi-g++。1.工具链一般随开发板提供,我的交叉编译工具链是aarch64-himix200-linux.tar.gz。将编译好的demo和Qt_arm5.15.10/lib上传到开发板,运行。###1.安装交叉编译工具链。路径下能看编译好的qt库了。###4.QT库交叉编译。

2023-06-14 16:19:38 1462

原创 海思编译安装ntp服务端

由于工作需求,需要在海思arm平台搭建ntp服务器,在ntp的移植过程中遇到了一些坑,网络上的一些教程都有各种各样的坑,我把自己的操作记录下来。操作系统: Ubuntu 22.04 LTS开发板 : hisi3531a。

2023-04-25 16:42:57 787

原创 win10下 wsl安装

控制面板,开启windows功能 1.hyper-V 2.适用于linux的windows子系统 3.虚拟机平机。或wsl --list --online 查询可用的发行版 wsl --install 安装。如果报错 0x80370102。

2023-01-28 13:11:21 1097

原创 操作系统 进程,线程,协程的区别。

进程,线程,协程的区别

2023-01-13 11:18:54 608

原创 GDB教程

gdb 使用详细教程gcc gdb-sample.c -o gdb-sample -g在上面的命令行中,使用 -o 参数指定了编译生成的可执行文件名为 gdb-sample,使用参数 -g 表示将源代码信息编译到可执行文件中。如果不使用参数 -g,会给后面的GDB调试造成不便。当然,

2023-01-13 08:51:38 430 1

原创 C++的四种类型转换: static_cast const_cast reinterpret_cast dynamic_cast

本人之前一直使用C语言的类型强制转换,最近写C++代码比较多。在github上看到其他人的代码并没有使用C语言的类型转换,了解到C语言的类型转换在C++中是不安全的。所以整理了一下C++的四种类型转换关键字的用法。...

2022-08-28 18:26:37 99

原创 vmware 虚拟机ubuntu 根分区磁盘扩容

前两天在vmware上创建了一台UBUNTU虚拟机,编译ANDROID源码时,发现40G的磁盘空间不够,在然后在虚拟机点击磁盘扩容。但是在ubuntu系统用fdisk -l并查看磁盘信息发现还有40G的空间没有挂载使用,于是想着把这40G的磁盘空间给扩容到根分区使用。 fdisk -l 查看分区信息,我们此次的目的是要将硬盘的60G空间全部分配给/dev/sda1,然后将其挂载到根目录。思路:删除原有分区 -> 创建新分区 -> 挂载一、删除原有分区用fdisk修改分区,fdisk /dev/sda

2022-06-16 11:08:46 1260

转载 C++ 原子操作(atomic)

1、atomic概述所谓原子操作,就是多线程程序中“最小的且不可并行化的”操作。对于在多个线程间共享的一个资源而言,这意味着同一时刻,多个线程中有且仅有一个线程在对这个资源进行操作,即互斥访问。C++ 11 新增atomic可以实现原子操作2、非原子操作#include <thread>#include <atomic>#include <iostream>using namespace std;int i = 0;const int maxCnt

2022-05-26 08:46:10 7694

转载 采用FFmpeg和nginx推RTMP视频流

一、FFmpeg推RTMP流准备工作首先确保自已已经安装了nginx + rtmp服务器。打开配置文件nginx.conf完成如下配置nginx配置.1二、FFmpeg推流1.推流MP4文件视频文件地址:/Users/xu/Desktop/bangbangbang.mp4 推流拉流地址:rtmp://localhost:1935/rtmplive/ho...

2019-06-12 09:35:38 570

原创 ibeacon UWB GPS 空间四点定位算法

最近在研究uwb空间四点的精准定位,其实是基于RSSI原理的,蓝牙IBEACON,GPS也差不多基于这个原理三维空间的四点定位算法:已知四个基站点的坐标(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)(x4,y4,z4)和到未知点(x,y,z)的距离R1,R2,R3,R4所以四点定位使用矩阵求解方程的方式:其中要求的点的坐标是(x,y,z),已知的四个探针的位置为(...

2019-06-11 13:20:37 11589 5

原创 C++ 裁剪图片 分割图片 截图

我采用的是OPENCV的库#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>using namespace std;using namespace cv;Mat img;Mat out;img = ...

2019-06-10 23:27:42 5239 2

转载 linux模拟键盘

#include   #include   #include   #include   #include   #include   #include     /* struct input_event {     struct timeval time;     __u16 type;     __u16 code;     __s32 valu

2017-02-28 09:40:40 719

原创 游戏光枪坐标定位原理及算法

我是做游乐行业的,要研发一款射击游戏机。现在要研发一款光枪,网上能找到的光枪大部分资料都是第一代的游戏机上面用的,用的还是有家里的老式电视机,加上霸王学习机,玩的射击游戏。我们研究是新的光枪好嘛。新型光枪是主要是有两种,一种是WII光枪,原理是红外感应条,加6自由度加速度的传感器。这种是相对位置,每次都要校准,体验感比较差。另一种是摄像头加红外光点来定位。就是摄

2016-06-14 10:46:34 3926 7

原创 树莓派人体感应报警器

买了一个香橙派。琢磨着做了一个人体感应报警器。需要的东西很简单,一个音乐播放芯片,一个继电器,一个漫步者的喇叭,一个人体红外感应器,五伏电源,一个香橙派,还有一个10K欧的电阻总共加起来。150块钱左右。这只是一个简易的报警器。我现在还不会linux上面音乐播放器编程,如果懂得编程的话,可以省掉音乐播放芯片和继电器后面还可以拓展给手机发短信的功能

2016-06-12 21:55:53 4752 2

原创 mplayer 音乐播放器封装类

最近要弄一款音乐播放器。虽然在网上能够找到类似的代码。但是不怎么方便调用。所以我自己写了两个文件,方便其他时候调用,是采用mplayer的命令行方式播放的。因为我要的功能不多,所以只写了几个函数,架构搭好了,需要的朋友可以添加XHMusicPlay.cpp文件////  XHMusicPlay.h//  ////  Created by gifter on

2016-06-12 21:05:14 1960

原创 命令行音乐播放器代码

最近想在linux平台下写一款音乐播放器,找了一下,没有其他的解决办法,于是想调用mmplayer的代码来达到播放音乐的目的,然后开始写了之后,发现需要用的技术还挺多的。包括,多线程编程,多进程编程,进程间通讯,线程间通讯,条件变量,互斥量,线程锁,有名管道以及无名管道,权当复习一下linux系统调用编程,下面我把代码复制到下面,大家参考一下,相关的资料在网上都能找得到。#in

2016-06-12 20:54:26 980

转载 无名管道pipe

管道是UNIX系统IPC的最古老形式,所有的UNIX系统都支持这种通信机制。有两个局限性:(1)       支持半双工;(2)       只有具有亲缘关系的进程之间才能使用这种无名管道;pipe函数功能:创建无名管道函数原型:#include          int pipe(int filedes[2]);参数经由参数filedes返回两个文件描述符,filed

2016-06-12 17:21:58 646

原创 安装mplayer

MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流操作系统使用,例如Linux和其他类Unix系统、Windows及Mac OS X系统。MPlayer建基于命令行界面,在各操作系统也可选择安装不同的图形界面。mplayer的另一个大的特色是广泛的输出设备支持。它可以在X11、Xv、DGA、OpenGL、SVGAlib、fbdev、AAlib、DirectFB

2016-06-10 12:45:06 1524

转载 mac 命令行安装软件

之前一直怀念ubuntu下的apt-get,因为实在是方便,需要安装什么,一个命令搞定,相关的依赖包统统由apt-get维护。下载,编译,安装,那叫一个痛快。什么软件用着不爽,一个命令卸载!怀念apt-get之余,发现了替代工具MacPorts,据说也可以解决我的问题。但可惜,我总是无法更新本地软件索引库!homebrew主页对brew进行了详细的描述,不过我们更希望下载下来实战演

2016-06-10 12:11:34 3941

原创 Linux编程查看出错信息

#includeerrno函数判断系统调用是否出错#includestrerror()分析出错信息

2016-06-05 11:35:43 378

转载 C/C++头文件注释

/*********************************************************************************  *Copyright(C),2010-2011,Your Company  *FileName:  // 文件名  *Author:  //作者  *Version:  //版本  *Date:  //完成日期

2014-08-29 15:47:28 1442

原创 Socket中如何设置连接超时

设置connect的超时很简单,CSDN上也有人提到过使用select,但却没有一个令人满意与完整的答案。偶所讲的也正是select函数,此函数集成在winsock1.1中,简单点讲,"作用使那些想避免在套接字调用过程中被锁定的应用程序,采取一种有序的方式,同时对多个套接字进行管理"(《Windows网络编程技术》原话)。使用方法与解释请见《Windows网络编程技术》。  在使用此函数前,需

2013-10-10 15:48:03 553

原创 10048错误(WSAEADDRINUSE)的错误处理

这两天在工作的过程中发现基于socket的网络程序中时不时发生connect()调用失败的错误,通过获取错误码,发现是WSAEADDRINUSE(10048)的错误,MSDN的说明如下:           这种错误常常发生在bind函数中,当bind已经绑定的端口被占用后,再次绑定同一端口就会发生错误,但这一错误不影响bind的执行,换句话说,bind第二次执行并不发生错误,但是在紧接着

2013-07-18 10:05:02 3686

转载 C++发送邮件和附件

头文件[cpp] view plaincopy/*********************************************************************** *发送邮件模块头文件 *可以发送文本和附件(支持多个附件一起发送) ****************************************

2013-07-10 18:50:16 3377 1

原创 wince注册表编程(新建,读取,修改)

在WINCE中,经常会使用到对注册表的编程,现在把最常用的注册表程序贴出来,希望对大家有所帮助.一共三个功能,其中用到的API函数具体用法请参照MSDN,有疑问可以留言到本BLOG. //******************************************************************//创建一个注册表健//****************

2013-07-10 13:53:17 795 1

原创 获取GetOpenFileName多选文件名

OPENFILENAME ofn;  TCHAR szOpenFileNames[80*MAX_PATH];  TCHAR szPath[MAX_PATH];  TCHAR szFileName[80*MAX_PATH];    TCHAR* p;  int nLen = 0;  ZeroMemory( &ofn, sizeof(ofn) );    ofn.F

2013-07-09 15:42:30 2128

原创 Windows 进程间通信方式

1 文件映射文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。Win32 API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使用这些指针,不同进程就可以读或修改文件的内容,实现了对文件中数据的共享。应用程序

2013-07-09 11:12:41 575

原创 Windows文件映射

#include #include string.h>#include string>#include using namespace std;int main(int argc, char *argv[]){ // 步骤1 打开文件FILE_FLAG_WRITE_THROUGH HANDLE hFile = CreateFile( "demo.tx

2013-07-09 11:02:25 4112

原创 Windows共享内存

Windows共享内存可以让两个进程对同一块内存进行读写。以下有2个进程,a.cpp生成A进程,b.cpp生成b进程。那么a进程将不停地读名为"Global\\MyFileMappingObject"的共享内存块,而b进程不停地写名为"Global\\MyFileMappingObject"的共享内存块。从而实现IPC。 //a.cpp#include #include s

2013-07-09 11:01:04 1079

原创 多线程(C++)同步Mutex

多线程之线程同步Mutex (功能与Critial Sections相同,但是属于内核对象,访问速度较慢,可以被不同进程调用)一 Mutex    互斥对象(mutex)内核对象能够确保线程拥有对单个资源的互斥访问权。实际上互斥对象是因此而得名的。互斥对象包含一个使用数量,一个线程ID和一个递归计数器。    互斥对象的行为特性与关键代码段相同,但是互斥对象属于内核对象,而关键代码

2013-07-08 23:36:36 673

原创 C++Event机制的简单实现

C++ Event Model一 事件模型  对发生的事件作出的响应——事件模型。1 事件:  在面向对象中,就是对象的属性或者状态发生了变化,操作或者接收到了某些动作时,向外发出了这种变化或者动作对应的通知。       2 事件模型包括的元素:        3 事件模型过程:    二

2013-07-08 23:35:35 902

原创 多线程(C++)同步Semaphore

多线程同步之Semaphore (主要解决生产者消费者问题)一 信标Semaphore信标内核对象用于对资源进行计数。它们与所有内核对象一样,包含一个使用数量,但是它们也包含另外两个带符号的3 2位值,一个是最大资源数量,一个是当前资源数量。最大资源数量用于标识信标能够控制的资源的最大数量,而当前资源数量则用于标识当前可以使用的资源的数量。为了正确地说明这个问题,让我们来看一看

2013-07-08 23:34:13 712

原创 临界段——win32 API函数

一、有关函数:   InitializeCriticalSection()    创建一个临界段   DeleteCriticalSection()        释放一个临界段   EnterCriticalSection()         获取对临界段的所有权,独占共享资源   TryEnterCriticalSection()      试图获得对临界段的所

2013-07-08 23:33:03 471

转载 WINCE下进程间通信(二)

接着前面的文章《WINCE下进程间通信(一)》,现在介绍进程间通信的另一种方法。 三、管道(消息队列)       WINCE并不支持类似于PC机上匿名管道、命名管道的通信方式,但CE下提供了一种点对点消息队列的方法,其工作原理与管道非常类似:在通信的两端分别建立一个读队列和写队列,写进程往消息队列一端写入数据,读进程从消息队列另一端读取数据。       消息队列相关的系

2013-07-08 13:45:27 598

转载 WINCE下进程间通信(一)

在WINCE开发中经常需要在不同的进程之间传递、共享数据,总结了一下,WINCE下进程间通信常用的方式有:Windows消息,共享内存,socket通信,管道,全局原子,邮槽等,下面就分别对这几种方法做个小结。(当然还可以采用注册表,磁盘文件以及数据库方式,只是这几种方式的通信效率和实时性比较低,所以一般不考虑。)一、Windows消息        通过Windows消息,可以很

2013-07-08 13:43:20 659

MFC CListView类应用 示例

MFC CListView类应用 示例源代码

2022-06-15

Multi Projector Monitoring & Control Software.zip

松下投影机网络控制软件 远程开关机

2021-01-19

MFC_Ffmpeg_sdl2_Player.rar

基于MFC FFMPEG SDL实现的视频播放器源代码,不错的学习资料

2014-09-28

星空极速密码C语言2.0

较1.0软件修改只能破解8.0的BUG,现在能破解6位及10位密码了 修复破解时出现的乱码的BUG。

2012-08-17

Windows API函数速查

1。将压缩文件解压到一个目录 2。启动pa.exe,启动后程序会自动创建Pa.db默认数据文件,并加载winapi.db文件 3。启动后会在系统托盘中出现pa的图标 4。默认直接按快捷键Ctrl+F1,此时会弹出查询输入框 5。输入待查询的API函数名,如AbortDoc,按回车后就可出现结果

2011-12-08

WIFI无线路由器密码破解

让你可以破解WINDOWS的无线网络密匙(WEP/WPA)。该软件采用十六进制和 Ascii (如果提供)码显示带有适配器名称和用户图形界面的密匙。该信息可以被拷贝到剪贴板或者导出为 Text/HTML/XML 文件格式。该软件不需要进行安装 经使用可以正常使用.我的路由是D LINK的,测试可以使用。

2011-12-07

CAsyncSocket--UDP.rar

使用CAsyncSocket进行无连接(UDP)通信-UDP SOCKET.

2011-12-05

java 入门要注意的问题

本笔记收集了本人java 入门要注意的问题,同时还有解决方法。。和注意的习惯。。

2011-04-05

Alcor(安国)AU6983量产工具

Alcor(安国)AU6983量产工具。。。

2010-09-08

数据结构 试题及答案

上传一份我们学校考过的数据结构的试题包括答案,希望对考前复习的朋友 有所帮助!

2010-01-13

电子技术 模拟部分复习PPT

关于高教版本模电复习课件 主要用于复习及模电内容的总结 。。。。。。

2010-01-04

turbo c语言学习工具

一个不错的c语言学习工具, 特别是代码编辑器!方便了程序的编写!

2009-05-06

空空如也

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

TA关注的人

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