自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于consul实现C++的服务发现

输入 http://localhost:8500/ 可以查看一下页面(consful默认8500端口)通过命令:consul agent -dev 来启动consul服务。参考/examples/consul/main.cpp中的实现。反注册服务:deregister_service。发现服务:discover_services。注册服务:register_service。以上接口基于libhv。

2023-04-03 15:59:19 409

原创 C++实现Golang defer功能

Golang defer C++实现

2022-01-07 09:36:58 448

原创 离线搭建C++开发环境(适用内网开发)

下载依赖项1.在有网络的电脑上,安装全新的ubuntu开发环境sudo apt install gcc make g++ vim libssl-dev cmakesudo apt-get install build-essential autoconf libtool pkg-configsudo apt-get install clang libc++-dev通过apt-get install下载安装的包,deb包都保存在**/var/cache/apt/archives/** 目录下,不执行

2022-01-06 17:16:05 1908

原创 C++字符串、字符数组比较

错误示范:误用===进行字符串比较string str( "Type1");if(str.data() == "Type1"){}正确示范if(strcmp(str.data(), "Type1") == 0){}错误原因分析:内存存储区简单可分为栈:由编译器自动分配和释放,存放函数的参数值、局部变量的值等堆:由 malloc 等分配的内存块,和堆是十分相似的,不过它是用 free 来结束自己的生命的,任何在函数内部声明的非static变量,其变量地址本身在栈区自由存储区:C+

2021-12-07 19:57:00 3293

原创 C++易混淆的语法总结(持续更新中)

函数指针和指针函数顾名思义 函数指针本质未指针,指针函数本质为函数最简单的辨别看函数名最近的指针*号有没有被括号()包含指针函数:返回值为指针的函数 int *fun():定义函数指针的几种方法 void (*funcPtr)(int x); typedef void (*FuncPtrType)(int ); using FP = void (*) (int);std::functionstd::function 是一个可调用对象包装器,是一个类模板,可以容纳除了类成员函数指针之外的

2021-11-24 16:26:08 554

原创 linux脚本基本操作

以**#! /bin/bash**作为第一行避免输入密码的方式sudo -S su - <<EOFpasswordEOF注意尽量避免使用相对路径获取当前路径的方法CURPATH=$(cd "$(dirname "$0")";pwd)

2021-11-24 14:54:28 335

原创 基于C++11异步编程std::async和std::future

#include <iostream>#include <future>#include <thread>#include <chrono>using namespace std;/*std::future可以从异步任务中获取结果,一般与std::async配合使用,std::async用于创建异步任务,实际上就是创建一个线程执行相应任务。*/int test_fun(int x){ std::this_thread::slee

2021-11-17 18:05:57 345

原创 基于dockerfile的docker编写

dockerfile文件FROM ubuntu MAINTAINER 111ENV TZ Asia/ShanghaiENV LANG en_US.UTF-8ENV LANGUAGE en_US:enADD ./grpcdemo.tar.gz /homeEXPOSE 50051WORKDIR /home/grpcdemoENTRYPOINT ["sh","./startserver.sh"]构建docker镜像在dockerfile的目录下执行 docker build -t d

2021-09-10 09:50:36 61

原创 grpc C++开发

1.grpc 安装编译git clone https://github.com/grpc/grpc.git安装教程参考BUILDING.md,cmake版本,务必选择cmake大于3.13的版本,否则后期使用缺少关键功能。2.具体使用参照https://www.cnblogs.com/embedded-linux/p/11787696.html...

2021-09-08 09:17:32 739

原创 创建本地Git仓库(基于gitlable)

替换清华源登陆https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/选择对应的操作系统版本sudo vim /etc/apt/sources.list 添加对应源

2021-08-26 18:58:52 90

原创 float转char*

void floatToBytesLittle(float value, unsigned char* cSendBuff, int pos){unsigned short i = 0;float floatVariable = value;unsigned char *pdata = (unsigned char *)&floatVariable;//big endian cSendBuff[i+1+pos]= *pdata++;cSendBuff[i+pos]= *pdata++;

2021-08-26 16:02:42 1007

原创 实用C++开发套件收藏

1.最简单的websocket C++库https://github.com/zaphoyd/websocketpp无需编译,直接引用头文件加上boost库即可运行2.Tar 腾讯分布式框架 支持C++编写微服务https://github.com/TarsCloud/TarsFrameworkhttps://github.com/TarsCloud/TarsCpp/tree/c6304ad1f9098a3d348bb2ef79df989060117b62/utilutil目录下附有丰富的优秀基

2021-08-25 09:50:28 269

原创 tars-docker安装教程(ubuntu)

安装docker1.ubuntu转载Ubuntu安装docker2.Centos上sudo suyum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum install -y docker-ce systemctl start dockersystemct

2021-08-11 16:33:05 171

原创 高质量代码-良好的C++代码风格

1.头文件的查找#include <filename.h> 编译器将从标准库目录开始搜索#include ”filename.h“ 编译器从用户的工作目录开始搜索故标准库头文件的引用采用第一种,非标采用第二种,提高编译效率2.头文件的引用顺序建议按照这种形式#include "stdafx.h"#include <map>#include <mutex>#include <boost/thread.hpp>#include "zs_qu

2021-07-30 15:22:52 299

原创 C++编译相关

__declspec(dllexport)与__declspec(dllimport)#if defined(_WINDLL)#ifdef DLL_EXPORTSTEST#define TEST_DLL __declspec(dllexport)#else#define TEST_DLL __declspec(dllimport)#endif#elif defined(__linux)#define TEST_DLL __attribute__ ((visibility("defa

2021-07-12 13:43:58 759

原创 libjsoncpp使用

cpp#include <string> #include <json/json.h>#include <iostream> #include <fstream> #include <sstream>#include "xml/tinyxml.h"#include "json/json.h"struct Commoninfo{ int ChanCode; int ChanType; int DataP

2021-07-09 16:26:47 531

原创 监控文件系统变化

待完善

2021-06-21 11:32:02 55

原创 linux服务器开发-socket小结

linux服务器开发入门版-socket小结一、服务器/客户端构建流程服务端函数调用流程:socket->bind->listen->accept->recv/send->close客户端函数调用流程:socket->connect->send/recv->closesend/recv可以进行多次交互。1.服务端在listen之前,客户端不能向服务端发起连接请求2.服务端在调用listen之后,服务端的socket开始监听客户端的连接3.

2021-06-17 19:35:39 551 2

原创 服务器开发小知识小结

pragma pack(n)的使用作用:调整结构体的边界对齐,让其以一个字节对齐;struct sample{ char m1; double m4; int m3;};不用#pragma pack(1)和#pragma pack()括起来,则sample按编译器默认方式对齐(成员中size最大的那个)。即按8字节(double)对齐,则sizeof(sample)==24.成员char a占了8个字节(其中7个是空字节)#pragma pack(push)#pragma pack(1

2021-06-03 11:07:02 60

原创 GIT常用操作

新建仓库1.git网页:New project datatool2.Git initgit config --global user.name "111"git config --global user.email "[email protected]"3.Create a new repositorygit clone [email protected]:111/datatool.gitcd datatooltouch README.mdgit add README.mdgit commit -m "ad

2021-06-02 16:14:18 54

原创 STL容器比较

map和unordered_map对比map:基于红黑树,复杂度与树高相同,即O(logn)。优点:1.map元素有序2.红黑树的结构使得map的很多操作O(logn)下完成;3.map的各项性能较为稳定,与元素插入顺序无关;4.map支持范围查找。缺点:1.占用的空间大2.查询平均时间不如unordered_mapunordered_map:基于散列表,复杂度依赖于散列函数产生的冲突多少,但大多数情况下其复杂度接近于O(1)。优点:1.查询速度快,平均性能接近于常数时间O(1)2.平均

2021-06-02 10:24:37 100

原创 C++ 保存文件到csv文件

CSV文件字符串逗号表示的是换列 换行符号就是换行std::string fileName = std::to_string(filestr) + ".csv";ofstream myfile;myfile.open(fileName.c_str(), std::ofstream::out | std::ofstream::app);char logStr[128] = {0};int len = sprintf(logStr, "id,sendTime,recvTime,sendSize,re

2021-05-25 11:27:29 1086

原创 C11实用特性

原字符串字符串前加’R’前缀 ,字符串首尾加上括号()string path = "C:\\Program Files\\Microsoft.NET\\ADOMD.NET";C++ 11string path = R"(C:\Program Files\Microsoft.NET\ADOMD.NET)";

2021-05-25 11:20:45 304

原创 GDB随笔

1.gdb中如何将所有线程的堆栈输出到文件1.先在gdb中设置log文件的位置,同时打开log2.使用 thread apply all bt输出所有的堆栈例子:下面是gdb attach到httpd后的堆栈(gdb) set logging file /tmp/test.txt(gdb) set logging onCopying output to /tmp/test.txt.(gdb) thread apply all bt...

2021-04-08 15:06:38 89

原创 windows免密登录linux(小白通用)

一、生成.ssh文件夹(如果有,跳过)linux下 ssh localhost二、生成.ssh文件夹(如果有,跳过)生成公钥在powershell(或git bash)命令行中输入,生成私钥和公钥,默认路径在 C:\Users\Administrator.ssh执行命令 ssh-keygen -t rsa将id_rsa_pub传到Linux服务器的/root/.ssh文件夹下scp /path/filename [username]@[ip address]:/path#示

2021-02-24 15:18:54 206

原创 C++ define 学习随笔

看QT源码QStringLiteral定义时 对C++#define用法产生疑惑define QStringLiteral(str) \([]() -> QString { \ enum { Size = sizeof(QT_UNICODE_LITERAL(str))/2 - 1 }; \ static const QStaticStringData<Size&gt...

2020-03-06 10:13:12 100

sslclient.zip(centos下实现的基于c++ssl客户端)

附程序代码及客户端程序,centos8 可编译通过,CA证书文件需自己生成,压缩包包含具体生成CA的操作。

2021-02-24

空空如也

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

TA关注的人

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