自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (3)
  • 收藏
  • 关注

原创 嵌入式必备

adb kill-server ; adb start-server嵌入式必备//编译结巴的demo g++ -std=c++11 -I ../deps/ -I ../deps/darts-clone/include/ -I ../include/ ../deps/limonp/Md5.cpp demo.c -o cppjieba_demo -Wall -g//编译的库 /home/jason/GongJuLian/host_out_3326/bin/aarch64-lin

2021-08-04 10:54:41 178

原创 Linux常用命令

Linux 常用命令集合time ./test.exe //执行这个程序并计时mkdir test //创建目录gcc m.c -o auto.exe -D_REENTRANT -lpthread //编译线程程序apt-get install manpages-posix-dev //安装posix手册cat demo.c

2021-02-23 04:15:28 134

原创 Socket编程网络编程基础

Socket 是网络编程得接口 所以网络编程又叫Socket 编程https 是80得默认端口 ssh默认端22域名解析系统DNS任何域名都可以解析到ip地址tcp /ip网络就是 物理链路tcp/ip协议四层:应用层传输层网络层数据链路层...

2020-09-29 22:04:51 145

原创 windos修改mac地址

windows修改mac地址

2024-03-13 16:32:26 320

原创 qt内嵌网页问题

【代码】qt内嵌网页问题。

2023-06-30 11:01:53 198

原创 qtDebug在qInstallMessageHandler调试模式不输出的问题

【代码】qtDebug在qInstallMessageHandler调试模式不输出的问题。

2023-03-29 12:27:53 318

原创 emqx emqtt部署安装

emqx emqtt集群负载均衡部署安装。

2022-12-14 09:45:18 2397

原创 解决uos无法安装eagle Release” 没有 Release 文件。

E: 仓库 “http://packages.ros.org/ros/ubuntu eagle Release” 没有 Release 文件。N: 无法安全地用该源进行更新,所以默认禁用该源。N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

2022-09-02 14:44:36 1460

原创 redis集群安装

redis集群安装(Cluster集群)(1)在线安装依赖(2)离线安装依赖离线下载:离线安装:(3)下载(4)规划目录(例如用redis账号安装)传到package下解压(5)编译与安装(6)编译完成后进行配置(7)编写集群配置文件vi redis_7001.conf(8)复制6个相同的 /home/redis-cluster/1_redis 改名不同的文件名…修改配置文件(9)启动…启动6台主机接着执行将所有的数据库集群起来(10)进行访问(11)将主机kil

2022-07-08 10:30:30 271

原创 gtest单元测试工具

环境搭建gtest下载地址: https://github.com/google/googletest下载方法是:git clone https://github.com/google/googletest.git安装方法是:$ cd googletest注意:如果在make 过程中报错,可在CMakeLists.txt 中增加如下行,再执行下面的命令: SET(CMAKE_CXX_FLAGS "-std=c++11") $ cmake . $ make然后在lib目录下会生成

2022-04-11 15:38:59 1010

原创 16进制2级制

字符数字 转 16进制int main(int arc ,char *arg[]){ char f = 'k'; int buf[64] = { 0 }; int i = 0; while (1) { if (f == 0) { break; } buf[i] = (f & 0xf);//相当于对16取余 (2进制)对2取余的话写1就行 i = i + 1; f = f >> 4;//相当于除以2^4 (2进制)制又移一位即可

2022-01-13 15:24:29 112

原创 linux 解析配置文件iniparser

https://github.com/ndevilla/iniparsergit clone https://github.com/ndevilla/iniparser//从git克隆源码到本地make//编译 .a为静态库 .so为动态库1.生成之后库文件在这 libiniparser.so.1 libiniparser.a2.用法在example/iniexample.c 3.库文件移动到项目目录下4.头文件 在src中 的两个.h文件自己在封装一下即可

2021-04-21 17:37:01 98

原创 安装libevent && protobuf

libevent官网http://libevent.org/安装步骤注意:以root用户身份操作1、下载源码包https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz2、解压tar zxvf libevent-2.1.12-stable.tar.gz3、配置安装路径cd libevent-2.1.12-stable(须有编译器g++

2021-04-19 09:28:56 141

原创 protobuf 序列化 &&协议写入读取io

protobuf是一种比json和xml等序列化工具更加轻量和高效的结构化数据存储格式官网:https://developers.google.com/protocol-buffers/protobuf的原理API说明 : https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message使用必须定义协议的模板,最后会翻译成c++的类定义message 所有的message必须定义到

2021-03-08 11:32:45 457

原创 libevent框架

/*Linux下libevent主要API介绍创建事件集 struct event_base *event_base_new(void);创建事件 struct event event_new(struct event_base ,evutil_socket_t ,short ,event_callback_fn, void*)添加事件 int event_add(struct event * ev,const struct timeval* timeout)

2021-03-02 14:42:34 107

原创 Epoll框架&&epoll_http服务器

事件队列包括未就绪事件队列和就绪事件队列而中间在不断的循环监听1.创建EPOLL 句柄int epoll_create(int size); 2.向EPOLL对象中添加、修改或者删除感兴趣的事件int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); op取值:EPOLL_CTL_ADD 添加新的事件到epoll中 EPOLL_CTL_MOD 修改EPOLL.

2021-02-28 07:12:31 175

原创 五种网络IO模式

linux系统产生了下面五种网络模式的方案:  1、阻塞IO(blocking IO)  2、非阻塞IO(nonblocking IO)  3、IO多路复用(IO multiplexing)  4、信号驱动IO(signal driven IO)不常用  5、异步IO (asynchronous IO)1.阻塞网络io 就是指从网络中读数据时,如果网络接口中的数据没有来,就阻塞在当前位置。sock默认的都是阻塞io2.非阻塞io 是指读操作中数据没有来,就立马返回,过段时间在看网络流中是否

2021-02-26 05:28:43 442

原创 线程池

其实并不是很复杂,关键点就是队列中得数据保证同步,还有线程得同步,运用互斥量和信号量即可实现

2021-02-25 05:52:58 63

原创 Linux &&UDP通信

客户端#include <sys/un.h>#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <stdlib.h>#include <netinet/in.h>#include <arpa/inet.h>#include <errno.h>#define BUFF_SIZE 1024int mai

2021-02-25 05:40:45 74

原创 使用VS2019 开发Linux C++ 程序

使用VS2019 开发Linux C++ 程序地址配置文件vi /etc/network/interfaces //编辑脚本auto eth0#iface eth0 inet dhcpauto eth0iface eth0 inet staticaddress 192.168.73.28 #ip addr 查询netmask 255.255.255.0 #固定gateway 192.168.73.1 #网关 ip route show配置DNS服务器 vi

2021-02-25 04:37:08 221

原创 TCP四层协议

应用层————为应用数据提供服务表示层————数据格式转化,数据加密会话层————建立、维护和管理会话传输层————建立、维护和管理端到端的链接,控制数据传输的方式网络层————数据传输线路选择,IP地址及路由选择数据链路层———物理通路的发送和数据包的划分,附加Mac地址到数据包物理层———01比特流的转换数据传输由顶向下,下层为上层提供服务TCP/IP四层协议模型应用层———负责处理特定的应用程序细节, 如ftp,http ,smtp,ssh 等运输层———主要为两台主机上的应用.

2021-02-24 02:35:03 376

原创 Nginx内存池

说白点,其实内存池就是申请一块大点的内存,用这块内存来供应我们服务器中所需要申请的内存,当然这个块大的内存中分为好几个内存块,如果申请的内存大于内存块的内存,那么内存池就会重新像系统去申请,会保存在一个专门的链表。...

2021-02-18 02:09:01 82

原创 进程间通信5内存共享

System V版本的共享内存 shmm写到共享内存#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <sys/shm.h>struct Conn_stat//申请的共享内存{ int count; char ip[64];};int main(){ void *shm = NULL;//指向共

2021-02-15 18:26:09 59

原创 进程间通信4信号量

/*****************************************************************************信号量,信号量是指多个进程同时执行的时候,同一段代码同一时间段只能由一个进程来执行*及pv操作,(一个进程执行到临界区会执行p操作是否是可执行的,如果不可执行就阻塞直到可执行)* 执行完这段代码之后在执行v操作,可以让别的进程执行这段代码 * pv这个区间被称为临界区。* p操作, 如果信号

2021-02-15 16:18:04 92

原创 进程间通信3消息队列

第一个进程#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#define MSG_SIZE 80//字符的长度struct m

2021-02-14 18:03:37 126

原创 进程间通信2管道

#include <stdlib.h>#include <stdio.h>#include <string.h>/*1.一般来说子进程和父进程通信至少需要两条管道 一条用于读,一条用于写*//*2.两个进程得共享资源都不是同一个,一般来说子进程产生得时候会将所有得资源拷贝一份供子进程使用, 所以父进程和子进程得资源不是同一份*//*3.如果写端的管道关闭之后,那么读端的就不会阻塞了,就会继续执行下面的代码*//*4.如果读端的管道关闭之后,那么写端的管道会

2021-02-14 16:17:07 129

原创 Linux进程间通信1信号

/*进程间信号通信*/#include <stdio.h>#include <stdlib.h>#include <signal.h>//头文件void myhandle(int sig) { printf("Catch a signal : %d\n", sig);}int main(void) { /*这个信号有点像Qt中得 信号与曹当用户按下ctrl+c就执行这个函数一般默认来讲就是结束这个程序而在这里我们只打印这句话,有兴趣得小伙

2021-02-09 16:10:19 154 1

原创 守护进程

/******************************************************************************* 守护进程 //关闭一个终端但没有关闭一个程序,同样程序也会跟着关闭 守护进程可解决这一问题* 1.就是将父进程exit结束之后 * 2.子进程交给init进程来处理,* 3.在做一个重定向就可以了*** 孤儿进程:* 1.一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。* 2.孤儿进程将

2021-02-07 18:18:29 44

原创 Linux多进程绑定cpu亲缘并发处理

/***************************************** 多进程绑定cpu亲缘**********************************************/#define _GNU_SOURCE//设置cpu亲缘所需的宏#include <sched.h>//cpu亲缘#include <stdio.h>#include <stdlib.h>#include <unistd.h>#includ

2021-02-07 15:56:21 228

原创 Linux进程的概念

#include <unistd.h>//进程头文件#include <stdio.h>int main(){ pid_t fpid;//fpid表示fork函数返回的值,创建一个进程 int count=0; fpid=fork();//创建进程失败返回负数 if (fpid < 0)//进程创建失败 printf("error in fork!"); else if (fpid == 0) //创建子进程成功返回

2021-02-06 16:54:18 84

原创 Linux SDK编译及部署nginx源码下载

静态动态网页nginx下载命令sudo wget -c http://nginx.org/download/nginx-1.18.0.tar.gz -P/usr/src/下载nginx源码包一般情况下SDK或源码编译为库的流程查看编译是否出错 结果为0是正常

2021-02-01 20:59:45 107

原创 opencv&&ffmpeg

windows运行ffmeg工具cd到ffmpeg 目录下 命令 ffmpeg -i 文件名.mp4 -vn -c copy 1.mp3 //抽取音频文件 抽取视频换成 -an ffmpeg -ss 0:0:30 -t 0:0:5 -input.mp3 -c copy output.mp3 //从一段mp3 中截取一段(5s)mp3 ffmpeg.exe -i 1.mp3 -i 1.mp4 -c copy 2.m

2021-01-08 17:42:35 845 1

原创 QT项目配置

QT项目配置路径配置工具-选项-构建和运行-./%{CurrentBuild:Name}-确定//选择当前目录生成项目添加qt源码工具-选项-调试器-添加qt源码-路径5.9.6下的src文件侠-okqt的快捷方式D:\QT\Tools\QtCreator\bin\qtcreator.exeQT中常用的类#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include<QLabel>

2021-01-04 21:43:39 755

原创 项目日志 Log4cpp

项目日志 Log4cpphttp://log4cpp.sourceforge.net/运用程序更方便的记录日志Linux中执行wget https://nchc.dl.sourceforge.net/project/log4cpp/log4cpp-1.1.x%20%28new%29/log4cpp-1.1/log4cpp-1.1.3.tar.gztar xzvf log4cpp-1.1.3.tar.gz//解压命令cd log4cpp-1.1.3./configure -prefix

2020-12-22 15:55:28 284

原创 Linux 内存检测valgrind&&单元测试模块测试

sudo apt-get install valgrind 安装Memcheck是valgrind 中得一个工具 用来检测c/c++程序中出现的内存问题,所有对内存的读写都会被检测到,一切对malloc()/free()/new/delete的调用都会被捕获。所以,它能检测以下问题: \1. 对未初始化内存的使用; \2. 读/写释放后的内存块; \3. 读/写超出malloc等分配的动态内存范围; \4. 读/写不适当的栈中内存块; \5. 内存泄漏,指向一块

2020-11-23 17:05:55 420

原创 Linux gdb调试 coredump 基础

Linux gdb调试gcc -g hello_demo.c -o hello //编译 生成调试的文件gdb hello //开始调试help//帮助命令***\*设置断点\****break 命令用于设置断点,命令接受行号或者函数名作为参数。使用info break 可以查看当前断点得信息使用 clear +之前设置断点得名字或者行号 可以清除断点run 运行 到断点得地方停下next 单步执行逐过程 next 2 执行两行如果想继续运

2020-11-20 16:41:28 154

原创 Linux makefile脚本 执行make即可

hello_demo://目标文件 hellospeak.o//生成目标文件所需的文件speak.o//生成目标文件所需的文件clean://清理之前的文件 无特殊要去改命令不会执行如果 执行 make clean则会执行者两条删除命令(注执行make时只会执行修改之后的文件,若文件没有被修改则不会重新生成)...

2020-11-19 14:55:23 3268

原创 Linux 多线程-小白

pthread_create函数创建一个新线程,并行的执行任务。#include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); 返回值:成功:0; 失败:错误号。参数: pthread_t:当前Linux中可理解为:typedef unsigned long int pthread

2020-11-09 16:52:01 82

原创 Linux 文件操作 小白

ssh远程链接不上虚拟机解决方案ifdwn eth0 //关闭网络ifup eth0 //启动网络 //如果还不行虚拟机先关闭linux-编辑-虚拟网络编辑器-更改设置-还原默认设置注 设置完成之后地址可能会发生变化ps -ef grep 程序名 //输出这个程序的信息程序名写一半就是同名这一半的所有信息(当前运行的程序) 获取当前程序的进程idps -ef //打印所有的进程信息 UID //进程的ID PPID 父进程的id进入那个正在执行的程序的fd cd /proc

2020-11-06 17:28:50 143

原创 http 协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。客户端请求客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成注 在请求数据之前必须要有一个回车换行符浏览器请求:GET /demo.html HTTP/1.1Host: 47.100.162.191Conne

2020-11-05 10:11:19 57

Nginx内存池.zip

指针操作内存,很容易造成内存泄漏,另外多次得系统调用会浪费很多时间,所以内存池就出现了。

2021-02-25

线程池.zip,互斥锁+条件变量+队列,实现线程池,包括线程池的创建,塞任务,和销毁线程池

线程池

2021-02-23

http并发服务器,小白专属

http,并发,利用多线程,实现了http并发服务器,可以达到多人同时访问,默认http 80的默认服务器,实现了404 ,501等多个错误信息

2020-11-09

空空如也

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

TA关注的人

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