自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (7)
  • 收藏
  • 关注

原创 C/C++学习笔记

一,acm基础算法https://github.com/GhostHallyz/ACM二,串口通信https://github.com/GhostHallyz/Cpp-Project/tree/master/Serial%20communication三,加密算法https://github.com/GhostHallyz/Cpp-Project/tree/master/Cry...

2019-03-06 14:42:29 134

原创 Android Native 内存泄漏系统化解决方案

Android Native 内存泄漏系统化解决方案

2022-06-26 14:30:19 869

原创 https-1 SSL、TLS简介

SSL(Secure Sockets Layer)是传输层的套接字安全协议,数据加密身份认证完整性保护HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议,是HTTP的升级版,主要针对HTTP的三大缺点:安全性是最大的短板,报文内容大部分都是明文,没有加密机制,如果被截获就完全没有秘密可言;缺少身份验证,你不知道和你会话的是google还是社会我谷哥, 会到中间人攻击或是钓鱼网站的欺骗;缺少完整性校验手段,无法证明报文在传输过程中

2022-06-06 22:04:05 157

原创 c++继承、重载、覆盖、隐藏

1. 继承:即父类实现的函数,在子类中即可调用。2. 重载:相同作用内,如一个类中,函数名相同,但函数形参不同。3. 覆盖:子类和父类中函数名相同,形参相同,基类中有virtual关键字,平常用的最多virtual实现的功能即是覆盖。4. 隐藏:子类和父类的函数名相同,形参不同,无论基类中有无virtual关键字,此时父类中的函数被隐藏;子类和父类的函数名相同,形参相同,父类中无virtual关键字(有关键字即为覆盖,此处可看出覆盖和隐藏的区别)继承继承是基础,有了继承才牵扯出覆盖和隐藏,覆

2022-06-06 22:03:04 137

原创 sftp 常用命令

sftp常用命令help 查看sftp支持哪些命令ls 查看当前目录下文件cd 指定目录lcd 更改和/或打印本地工作目录pwd 查看当前目录lpwd 打印本地工作目录get xxx.txt 下载xxx文件put xxx.txt 上传xxx文件quit / bye / exit 退出sftpsftp xxx.xxx.xxx.xxx 登录root用户SCPscp -i C:\Users\Administrator.ssh\weicheng.zeng weicheng.zeng@1

2022-06-06 22:01:20 183

原创 tcpflow-网络抓包工具

sudo tcpflow -cp -i any port 18001-c:将数据流打印到控制台,不要存储到文件中。-p:非杂乱模式-i:指定网络接口port:指定监听的端口号host:指定监听的域名或iphttps://github.com/simsong/tcpflowusage: tcpflow [-aBcCDhJpsvVZ] [-b max_bytes] [-d debug_level] [-[eE] scanner] [-f max_fds] [-F[ctTXMkm

2022-05-26 20:47:26 359

原创 asan c/c++内存检测

一、ASAN 简介ASAN(AddressSanitizer 的缩写)是一款面向C/C++语言的内存错误问题检查工具,可以检测如下内存问题:使用已释放内存(野指针)堆内存越界(读写)栈内存越界(读写)全局变量越界(读写)函数返回局部变量内存泄漏ASAN工具主要由两部分组成:运行时库运行时库(libasan.so.x)会接管 malloc 和 free 函数。malloc执行完后,已分配内存的前后(称为“红区”)会被标记为“中毒”状态,而释放的内存则会被隔离起来(暂时不会分配出去)且也

2022-05-24 14:48:13 440

原创 gcc 版本管理工具 scl

1 安装 scldevtoolset对应gcc的版本devtoolset-3对应gcc4.x.x版本devtoolset-4对应gcc5.x.x版本devtoolset-6对应gcc6.x.x版本devtoolset-7对应gcc7.x.x版本devtoolset-8对应gcc8.x.x版本devtoolset-9对应gcc9.x.x版本devtoolset-10对应gcc10.x.x版本# centos install scl$ yum install centos-release-

2022-05-24 14:46:40 201

原创 wrk 压测工具

wrk 压测工具安装git clone https://github.com/wg/wrk.git cd wrk make 常用参数类型Usage: wrk <options> <url> Options: -c, --connections <N> Connections to keep open -d, --duration <T> Duration of test, e.g. 2s, 2m, 2h

2022-05-24 14:45:34 102

原创 Linux下动态库(so)的搜索路径

程序编译时,通过-Wl, -rpath参数指定的路径;环境变量LD_LIBRARY_PATH指定的路径/etc/ld.so.conf或/etc/ld.so.conf.d/目录下任何一个文件中指定的路径/lib路径/usr/lib路径加入动态链接库的路径su - root echo "/usr/local/lib" >> /etc/ld.so.confecho "/usr/local/lib64" >> /etc/ld.so.conf ldconfig -v.

2022-05-24 12:46:15 919

原创 go运行时状态信息

go运行时状态信息内存runtime.ReadMemStats(&ms) 获取内存分配信息,可以定时收集,发送给时序数据库做监控统计gc 数据ReadGCStats 获取最近的GC统计信息,可以定时收集,发送给时序数据库做监控统计协程数runtime.NumGoroutine 获取当前协程数,可以定时收集,发送给时序数据库做监控统计panic 堆栈信息日志查询pporf实现 flag.StringVar(&cpuprofile, "cpuprofile", ""

2022-05-24 12:44:17 119

原创 vscode远程调试

vscode 远程调试1.设置代理地址go env -w GOPROXY=https://goproxy.cn,direct2.被调试机设置环境变量 sudo vim /etc/profile##编辑文本首行加入如下:export GOPATH=/root/goexport PATH=${PATH}:${GOPATH}/bin##wq保存退出sudo source /etc/profile远程调试机 dlv 开启监听dlv attach $1 --headless --api-

2022-05-24 12:43:26 139

原创 git 常用命令整理

1.Git 常用命令速查表[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w0qgiTuf-1653367255291)(image\Git-command.png)]Git常用操作命令收集:1) 远程仓库相关命令检出仓库: $ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git re

2022-05-24 12:42:08 53

原创 TCP 传输控制协议(Transmission Control protocol)

TCP 段结构 (TCP segment structure)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-41l4KLeO-1653367207345)(.\image\TCP_segment_header.png)]源端口 Source port (16 bits)发送方端口信息目标端口 Destination port (16 bits)接收方端口信息序列号 Sequence number (32 bits)具有双重作用:如果 SYN 标志设置为 (1

2022-05-24 12:40:35 240

原创 TCP快速连接(tfo,TCP fastopen)

TCP Fastopen 简介首先,回顾下tcp三次握手tcp fastopen 握手流程:TFO 首次建联会发送空cookie,完成首次建联后,内核网络会保存该cookie,用于后续建联使用。如下图:当客户端断开连接,下一次请求同一个服务端的时候,会带上之前存储的Cookie和要发送的数据,在SYN的路径上一起发送给服务端,如下图:TFO 系统开关配置#3的意思是开启TFO客户端和服务器端#1表示开启客户端,2表示开启服务器端echo 3 > /proc/sys/net/ip

2022-05-24 12:37:46 304

原创 nginx 返回状态码详解

nginx 返回状态码详解200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 201 (已创建) 请求成功并且服务器创建了新的资源。 202 (已接受) 服务器已接受请求,但尚未处理。 203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 204 (无内容) 服务器成功处理了请求,但没有返回任何内容。 205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。206 (部分内容) 服务器成功处理了部分 GET 请求。 300

2022-05-23 15:32:38 1603

原创 ngx_lua模块

ngx_lua模块ngx_lua模块的原理:1、每个worker(工作进程)创建一个Lua VM,worker内所有协程共享VM;2、将Nginx I/O原语封装后注入 Lua VM,允许Lua代码直接访问;3、每个外部请求都由一个Lua协程处理,协程之间数据隔离;4、Lua代码调用I/O操作等异步接口时,会挂起当前协程(并保护上下文数据),而不阻塞worker;5、I/O等异步操作完成时还原相关协程上下文数据,并继续运行;可以在nginx配置文件中加上目录:nginx.conf中server

2022-05-23 15:31:53 408

原创 nginx referer模块

nginx referer模块配置说明| Syntax: | **valid_referers** none | blocked | server_names | *string* ...; || :------- | ------------------------------------------------------------ || Default: | — ||

2022-05-23 15:29:07 1681

原创 nginx.conf

nginx.confNginx为配置一个完整的静态Web服务器提供了非常多的功能,下面会把这些配置项分为以下8类进行详述:虚拟主机与请求的分发、文件路径的定义、内存及磁盘资源的分配、网络连接的设置、MIME类型的设置、对客户端请求的限制、文件操作的优化、对客户端请求的特殊处理。这种划分只是为了帮助大家从功能上理解这些配置项。配置模块描述main全局设置其指令将影响其他所有部分的设置server服务器虚拟主机设置其指令主要用于指定虚拟机域名、IP、端口其指令继承于main

2022-05-23 15:28:21 35

原创 nginx 编译准备

nginxyum install -y gcc g++yum install -y pcre pcre-develyum install -y zlib zlib-develyum install -y openssl openssl-devel

2022-05-23 15:28:03 39

原创 nginx 模块说明

nginx 模块说明模块描述ngx_http_core_modulenginx核心基础模块ngx_http_access_module该模块提供了一个简单的基于主机的访问控制。允许/拒绝基于ip地址ngx_http_addition_module作为一个输出过滤器,支持不完全缓冲,分部分响应请求ngx_http_api_modulengx_http_auth_basic_module该模块提供了一个简单的基于主机的访问控制。允许/拒绝基于ip地址

2022-05-23 15:26:06 140

原创 openssl s_server & s_client 相关命令参数

openssl s_server & s_client 和相关命令参数示例:更新动态链接库名字列表sudo ldconfigopenssl s_server -accept 443 -key server.pem -cert server.pem -debug -msgopenssl s_client -connect 127.0.0.1:443 -debug -msgln -s /usr/local/ssl3/lib/libssl.so.3 /usr/lib64/libssl.

2022-05-23 15:24:41 488

原创 openssl config配置编译选项

openssl config 配置编译选项全局选项第一类是全局性选项:--openssldir=OPENSSLDIR安装目录,默认是 /usr/local/ssl 。--prefix=PREFIX设置 lib include bin 目录的前缀,默认为 OPENSSLDIR 目录。--install_prefix=DESTDIR设置安装时以此目录作为"根"目录,通常用于打包,默认为空。zlibzlib-dynamicno-zlib使用静态的zlib压缩库、使用动态的zlib压缩库、

2022-05-23 15:22:14 841

原创 windows terminal ssh连接

windows terminal ssh连接1.在windows端生成rsa公私钥进入目录 ~/.sshcd ~/.ssh使用 ssh-keygen 命令在 git-bash (或者Windows控制台,win10可在 设置->应用->应用和功能->可选功能->添加功能 安装OpenSSH客户端和服务端后使用)生成rsa公钥 id_rsa.pub 和私钥 id_rsa默认rsa文件名为id_rsa,也可以自己设置,然后输入密码,确认密码(支持空密码)ssh-keygen

2022-05-23 15:20:34 1545 1

原创 wsl 镜像迁移

wsl 镜像迁移1、打开CMD,查看所有WSL$ wsl -l --all -v NAME STATE VERSION Ubuntu-20.04 Stopped 2* centos Running 22、导出WSL$ wsl --export Ubuntu-20.04 d:\ubuntu20.04.tar3、注销待迁移WSL$ wsl --u

2022-05-23 15:17:19 277

转载 自建docker仓库

一、简介在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。这一篇介绍registry、harbor两种私有仓库搭建。二、registry 的搭建1. 搭建Docker 官方提供了一个搭建私有仓库的镜像 re

2022-05-10 20:43:09 918

原创 Dockerfile-docker 打包

Docker Dockerfile什么是 Dockerfile?Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。Dockerfile 指令1、FROM 和 RUN 指令的作用FROM:定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。类型镜像操作系统基础镜像busyboxAlpineCentOSUbuntuDebian编程语言基础镜像Java基础镜像Py

2022-05-10 20:32:18 840

原创 认识docker

docker学习入门

2022-05-10 20:31:02 204

原创 Linux socket个数查询

Linux中查看当前的socket状态:IPV4:[root@centos ~]# cat /proc/net/sockstatsockets: used 96TCP: inuse 3 orphan 0 tw 0 alloc 3 mem 1UDP: inuse 2 mem 0UDPLITE: inuse 0RAW: inuse 0FRAG: inuse 0 memory 0注:sockets: used:已使用的所有协议套接字总量TCP: inuse:正在使用(正在侦听)的

2021-08-25 09:52:35 986

原创 C++ 使用openssl实现RSA加解密

openssl 自行编译,可参考网上教程RSA私钥解密算法证明 youxingq

2021-06-13 11:46:25 1000

原创 C++ 使用zlib开源库的minizip解压缩文件及文件夹

首先 GitHub 上下载 zlib 的发行版本编译zlib,

2021-06-12 23:20:50 2088 6

原创 【C/C++学习笔记】C++11 新特性之内存对齐

举个例子介绍下内存对齐,又#include <iostream>struct A{ int a; short b; char c; double d;};struct B{ int a; char b; short c; double d;};struct C{ char a; int b; double c; short d;};int main(){ prin

2021-06-12 22:55:59 510 2

转载 C++使用Markup解析xml文件

http://www.firstobject.com/dn_markup.htm

2021-06-12 21:22:35 349

原创 kill、killall、pkill命令区别

1.用kill来杀死某一个进程pid是进程号,可以用 ps 命令查出kill pid // 默认参数下,kill 发送SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自行停止运行并退出kill -Signal pidsignal是发送给进程的信号一般常用的kill信号有 1 表示从终端上发出的结束信号 2 表示从键盘上发出的终端信号(即Ctrl+c) 3 表示从键盘上发出的退出信号(即Ctrl+\)

2021-06-12 17:26:57 412

转载 创建windows系统托盘应用程序

#include <windows.h>#define IDR_PAUSE 12#define IDR_START 13LPCTSTR szAppClassName = TEXT("服务程序");LPCTSTR szAppWindowName = TEXT("服务程序");HMENU hmenu;//菜单句柄LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ .

2021-06-12 17:06:25 303

转载 windows中使用icacls命令还原文件夹的权限设置

icacls命令简介Icacls 是一种命令行工具,它显示或修改指定文件上的随机访问控制列表 (DACL),并将存储的 DACL 应用于指定目录中的文件。Icacls.exe 替换了 Cacls.exe 工具用于查看和编辑 DACL。ICACLS 是 Windows Server 2003 SP2 中 CACLS 工具的升级版本,可用于从恢复控制台重设文件中的帐户控制列表 (ACL) 以及备份 ACL。与 CACLS 不同的是,ICACLS 可以正确地传送对继承的 ACL 的更改和创建。有关 ICACL

2021-06-12 16:50:12 1875

转载 通过libcurl实现https访问服务器

libcurl支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。本文通过一个示例Demo介绍通过libcurl实现https访问服务器。对libcurl 库的封装类示例如下,————————————————版权声明:本文为CSDN博主「法哥2012」的...

2021-06-12 16:45:36 1199

转载 libcurl 基础介绍

一、LibCurl基本编程框架libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。想要知道更多关于libcurl的介绍,可以到官网http://curl.haxx.se/上去了解,在这里不再详述。win32版的libcurl下载地址:http://.

2021-06-12 16:38:53 247

原创 inno setup静默安装vcredist_x86.exe,并判断是否已经安装过

;静默安装vcredist_x86.exe[Run]Filename: {app}\vcredist_x86.exe; Parameters: /q; WorkingDir: {tmp}; Flags: skipifdoesntexist; StatusMsg: "Installing Microsoft Visual C++ Runtime ..."; Check: NeedInstallVC9SP1[Code]varvc9SP1Missing: Boolean;function NeedI.

2021-06-12 16:03:22 878 1

原创 linux下gdb调试和coredump内核转储

1、GDB简介  GDB(GNU Debugger)是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。是linux系统环境下的C/C++开发者必须掌握的一个开发工具。2、 GDB调试流程2.1 准备这里用c程序做演示;#include <stdio.h>int main(){ printf("enter main()\n"); int i = 0; for(; i<10; i++){ pri

2021-05-26 15:54:29 357

MFCDemo.zip

MFC 图片按钮的实现(编译工具VS2013),分别用 MFC 自带的CBitmapButton和GDI+重绘按钮,以及第三方类 CButtonST 实现图片按钮的示例

2020-09-03

winServer.zip

windows服务开发样例 一个完整的C++开发服务程序源码,可以控制台调试,也可以注册成服务调试。功能区代码没有实现,自行添加要实现的功能,比如http服务之类功能模块

2019-12-18

DesignPattern.zip

C++实现的的23种设计模式,学习总结,已全部跑过一遍,没什么大问题,具体仅供参考

2019-07-01

LibDemo.zip

StaticLib静态库封装,Dll_def动态库def导出接口,Dll_keyword动态库关键字导出接口,LibDemo演示demo,包含静态库的调用,动态库的显示调用和隐式调用

2019-07-01

dll动态链接库关键字导出函数模板

dll动态链接库,关键字__declspec(dllexport)导出函数,四则运算,显式和隐式调用dll

2017-08-22

dll动态链接库模板

dll动态库模板,使用(.def)导出四则运算函数,显示调用和隐式调用dll

2017-08-22

lib静态库编程样例

VS2013 Win32 lib静态库模板

2017-08-22

空空如也

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

TA关注的人

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