自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 字符串ipv4和ipv6地址转换成整形

ip地址转换

2022-07-04 11:47:54 1221 1

原创 svn常用命令使用

svn下载指定版本 svn up -r 版本号svn stat出现的文件详解第一栏: 表示一个项目是增加、删除,还是修改“ ” 无修改“A” 增加“C” 冲突“D” 删除“I” 忽略“M” 改变“R” 替换“X” 未纳入版本控制的目录,被外部引用的目录所创建“?” 未纳入版本控制“!” 该项目已遗失(被非 svn 命令删除)或不完整“~” 版本控制下的项目与其它类型的项目重名...

2022-04-24 10:38:53 732

原创 ubuntu虚拟机ifconfig发现没有ip地址

1、打开任务管理器->开启VMware相关的所有服务(主要是Nat跟DHCP)2、sudo dhclient ens33 为网卡分配ip地址实在不行查看网络配置vim /etc/network/interfaces 添加网卡配置。设置动态IP地址auto ens33iface ens33 inet dhcp重启网络/etc/init.d/networking restart......

2022-03-20 17:42:10 5210

原创 vim文件命令操作

替换操作在VIM中进行文本替换:1. 替换当前行中的内容: :s/from/to/ (s即substitude) :s/from/to/ : 将当前行中的第一个from,替换成to。如果当前行含有多个 from,则只会替换其中的第一个。 :s/from/to/g : 将当前行中的所有from都替换成to。 :s/from/to/gc : 将当前行中的所有from都替换成to,但是每一次替换之前都

2022-03-10 10:36:21 104

原创 openssl rsa加密解析 aes加解密

RSA加密长度限制问题RSA加解密中必须考虑到的密钥长度、明文长度和密文长度问题。明文长度需要小于密钥长度,而密文长度则等于密钥长度。因此当加密内容长度大于密钥长度时,有效的RSA加解密就需要对内容进行分段。这是因为,RSA算法本身要求加密内容也就是明文长度m必须0<m<密钥长度n。如果小于这个长度就需要进行padding,因为如果没有padding,就无法确定解密后内容的真实长度,字符串之类的内容问题还不大,以0作为结束符,但对二进制数据就很难,因为不确定后面的0是内容还是内容结束符。而只

2022-03-09 16:56:33 422

原创 make编译期间制定优化层次命令

make CC=clang CFLAGS=O0

2022-01-16 19:18:02 257

原创 svn switch版本控制

https://www.cnblogs.com/dabaopku/archive/2011/05/21/2052820.htmlwitch是把工作空间里的一些文件、文件夹交给另一个版本库来控制,让你在一个版本库中工作的时候随时接受别人在另一个版本库对其他文件的更新。因此,你就可以完全自在的编辑自己的branch,只要update就可以获取trunk的更新(当然,trunk里别人对你switch走的文件的修改你是无法更新的,等你下次要merge是会产生conflict),因此brach和trunk的逻辑关系

2021-09-07 17:22:28 134

原创 gdb调试 多线程情况下如何锁定当前线程,防止其他线程干扰

GDB> show scheduler-locking //显示线程的scheduler-locking状态GDB> set scheduler-locking on //调试加锁当前线程,停止所有其他线程

2021-08-16 16:36:18 3821

原创 svn中使用vimdiff比较代码差异

https://www.cnblogs.com/xuxm2007/archive/2012/05/11/2496243.htmlvimdiff在比较2个文件时,只要知道这2个文件的路径及文件名就可以了,也就是上述diff内部命令中的第7个和第8个2个参数;同时也说明了由于diff内部命令的参数过多导致用–diff-cmd直接调用vimdiff是行不通的(命令如下)。$ svn diff --diff-cmd vimdiff -r4420 ngx_http_limit_req_module.c所以,我

2021-07-26 14:57:14 635

原创 java中log4j日志输出时区错误问题

在启动参数上加上时区设置-Duser.timezone=GMT+08java -jar ./dbmonitor.jar

2021-07-14 10:43:46 581

原创 shell脚本各种$表达式

$() 命令替换${} 可以引用某个环境变量$[] 进行数学运算(只支持整数运算,如果支持浮点数则需要使用bc)

2020-12-27 18:44:23 233

原创 vs2008项目升级到vs2015出现了cannot open include file afxres.h 解决

参考连接地址:https://social.msdn.microsoft.com/Forums/en-US/6b69607a-8a84-4e46-b3c8-5cd832bfb9c7/vs-2017-rc-file-error-rc1015-cannot-open-include-file-afxresh?forum=vcgeneralvs2015解决方案参考连接https://blog.csdn.net/rentingting0312/article/details/79865642解决方案截图

2020-12-17 12:09:00 261

原创 nginx fastcgi

nginx配置文件样例worker_processes 4;events { worker_connections 1024; }http { //http负载均衡配置 upstream backend { server 192.168.41.132:8888 weight=2; server 192.168.41.133:8888 weight=1; } server { listen 8888;

2020-11-28 20:53:32 79

原创 windows与linux文件格式转换

windows和linux文件的转换由于windows与unix系统的换行不一致,因此需要相互之前的格式转换只需要在linux上执行dos2unix filename将windows下的文本文件转换成linux上可以浏览的文件unix2dos filename将unix格式的文件转化成windows下的格式...

2020-11-26 14:13:00 1115

原创 libcurl异步调用

int main(int argc, char **argv){// 初始化curl_global_init(CURL_GLOBAL_WIN32);CURLM *multi_handle = NULL;CURL *easy_handle1 = NULL;CURL *easy_handle2 = NULL;extern size_t save_sina_page(void *buffer, size_t size, size_t count, void *user_p);extern size

2020-11-03 16:49:50 453

原创 IOCP使用acceptEX进行异步接收

示例代码#include <winsock2.h>#include <windows.h>#include <string>#include <iostream>#include<process.h>#include <ws2tcpip.h>#include <mswsock.h>using namespace std;//#pragma comment(lib,"MSWSOCK.lib")#pragm

2020-10-25 18:06:58 1220

原创 iocp接收连接放在主loop里

https://docs.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-acceptex微软示例参考:https://blog.csdn.net/ggz631047367/article/details/45012993// IOCP_TCPIP_Socket_Server.cpp#include <WinSock2.h>#include <Windows.h>#include <vector&

2020-10-23 09:35:29 98

原创 重叠io和iocp

重叠io主要没有了类似于epoll_wait的等待,并且系统自动调用回调为什么有了重叠io还需要iocp因为重复调用非阻塞模式的accept函数和进入alertable wait状态的SleepEx函数将影响性能。(即不能为了处理连接请求而只调用accept,也不能为了Completion Routine而只调用SleepEx函数)使用CreateIoCompletionPort创建完成端口创建完成端口必须按照上图的值进行传递将iocp对象与套接字关联依然使用上面的函数确认已完成的io

2020-10-13 21:06:45 239

原创 windows之重叠IO

IO重叠就是一次调用向多端异步发送数据1、SOCKET WSAScoket(…)创建重叠IO套接字(最后的参数传入WSA_FLAG_OVERLAPPED才具有IO重叠的特性)2、使用WSASend函数发送IO重叠数据,末尾flag传入(如果发送的数据很小可以一次性传输调用该函数会返回0,反之会返回SOCKET_ERROR,并将WSA_IO_PENDING注册为错误代码)3、WSARecv函数用于接收数据4、通过WSAGetOverlappedResult函数判断io完成和结果感觉功能上和异步I

2020-10-13 17:52:24 299

原创 windows异步套接字

事件通知的异步 可相当于linux下的epoll1、创建普通的套接字 和通过WSACreateEvent创建的句柄(创建的句柄默认是无信号模式,且需要手动重置)2、将句柄和套接字通过WSAEventSelect加入到内核并绑定3、WSAWaitForMultipleEvents去检测是否有事件(话说WSAWaitForMultipleEvents和WaitForMultipleEvents有什么区别)4、通过WSAEnumNetworkEvents去检测事件类型...

2020-10-13 14:45:41 122

原创 为什么在异步IO通知模型中,事件对象必须是manual-reset(手动重置)模型

2020-10-12 17:29:34 108

原创 tcp中发送接收外带数据(紧急数据)方法

oob_send.c#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>#define BUG_SIZE 30void error_handling(char* message);int main(int argc, char*

2020-09-16 11:53:25 562

原创 delay ack

当开启delay ack的时候,接收端每收到一个包就会重置delay时间,直到delay时间到或者有发送给对端的数据包(将ack捎带回去)才回复ack

2020-09-13 18:01:18 122

原创 mysql客户端

mysql api c客户端:https://www.yuque.com/linuxer/linux_senior/rcz4xlhiredis的使用:https://www.yuque.com/linuxer/linux_senior/ofs3au

2020-09-08 20:36:02 89

原创 ipv4地址结构体

sockaddr_in是保存ipv4地址信息的结构体,那为何还要使用sin_family单独指定地址族信息呢。这与他的抽象父类sockaddr结构体有关,结构体sockaddr并非只为ipv4设计,为了与sockaddr兼容所以添加了sin_family

2020-08-26 16:56:46 508

原创 openssl 再win上编译

1、安装Perl;2、下载OpenSSL并解压到e:/work/openssl;3、启动VS command prompt控制台;4、cd e:/work/openssl5、perl Configure VC-WIN32 --prefix=d:/openssl6、ms\do_masm7、修改ms/nt.mak和ms/ntdll.mak去掉CFLAG定义中的/WX。(/WX表示treat warning as error,该开关会导致openssl无法编译)8、执行编译nmake -f ms

2020-08-21 21:14:29 78

原创 pthread_cond_wait虚假唤醒

pthread_cond_wait中有多个线程被阻塞时,没死pthread_cond_signal会唤醒一个线程,这个线程会先获取互斥锁之后再执行消费资源的逻辑(比如消息队列)当wait里面有一个线程被唤醒时可能之后会获取互斥锁失败,因为互斥所肯能被其他未阻塞的线程提前获得. 当此线程获得互斥锁的时候资源可能被消耗了所以pthread_cond_wait外面需要一个while(x < y)这种逻辑包裹着pthread_mutex_lock(mutex)while (条件){pthread_co

2020-08-04 23:48:12 454

原创 mysql性能测试 存储过程自增id创建

delimiter $DROP PROCEDURE IF EXISTS test_insert;CREATE PROCEDURE test_insert()BEGINDECLARE i INT;SET i=1;WHILE i <= 1000 DOREPLACE INTO autoincreid (guid) VALUES(‘a’);SET i=i+1;END WHILE;END;$delimiter ;CALL test_insert();CREATE TABLE auto

2020-07-31 14:29:39 251

原创 清空mysql表 并使id从1开始自增

truncate table table_name;

2020-07-24 14:58:57 133

原创 查看mysql当前连接数量

show status like ‘%Threads_connec%’;

2020-07-23 17:45:00 311

原创 将windows文件转成linux文件

dos2unix file

2020-07-08 18:11:17 786

原创 多态与泛型编程

1、多态的实现方式不只是面向对象,再很多动态语言里用所谓的鸭子类型实现多态2、c++使用模板实现鸭子类型为什么要有鸭子类型鸭子类型可以使开发者不需要使用继承来实现一些约定,尤其对于混合了不同的来源不同的继承体系的对象。唯一的要求是这些对象有共通的成员函数,成员函数的参数类型不一定一样。例如c++标准容器都有push_back()函数和size()函数, 都有begin()和end()函数,但是他们没有都继承相同的基类3、如果模板再实例化时需要实例化特殊的变量类型函数,可以通过函数重载,模板特化或者

2020-07-07 16:21:44 328

原创 c++ decltype和auto的区别

auto 是一个值类型auto& 是一个左值引用类型auto&& 是一个转发引用类型(符合引种折叠逻辑)decltype(a) 是一个值类型decltype((a)) 是一个左值引用类型decltype(a + a) 是一个值类型从以上写法来看auto和decltype用法功能是重叠的所以尽量用auto但是auto有个限制,你需要在写下 auto 时就决定你写下的是个引用类型还是值类型。使用 auto 不能通用地根据表达式类型来决定返回值的类型decltype(exp

2020-06-11 14:39:10 282

原创 ubuntu安装java8

sudo apt install default-jdkhttps://www.centos.bz/2018/06/%E5%9C%A8ubuntu-18-04%E4%B8%8A%E4%BD%BF%E7%94%A8apt%E5%AE%89%E8%A3%85java/

2020-03-07 22:40:23 113

原创 ubuntu使用

这里调用了系统自带的一个截图指令:gnome-screenshot而我们再加上一个参数就可以区域截图gnome-screenshot -a

2020-03-02 22:29:52 103

原创 在main之前运行 忘.init段和.ctors段添加函数

#include <stdio.h>void __attribute__((section(".init"))) test_init() { printf("this is test_init\n");}void my_init() __attribute__((constructor));void my_init() { printf("this is ...

2020-02-15 16:11:00 645

原创 c语言 时光倒流函数

#include <stdio.h>#include <setjmp.h>#define print(args...) fprintf(stdout, ##args)jmp_buf b;void f() { longjmp(b, 1);}int main() { if (setjmp(b)) { printf("world!...

2020-02-15 15:54:32 804

原创 共享库版本兼容性

目前共性库和共享对象是一个概念当共享库版本升级需要改动接口的时候就会出现共享库版本兼容问题这里的接口主要是指ABI接口(诸如: 函数调用的堆栈结构 符号命名 参数规则 数据结构的内存布局 函数入栈顺序等)...

2020-01-31 23:40:56 144

原创 linux创建内核线程

#include <iostream>#include <cstdio>#include <string>#include <vector>#include <time.h>#include <map>#include <sched.h>#include <unistd.h>using ...

2020-01-10 11:49:05 163

原创 VS2008引入静态库链接时符号找不到问题

原因是因为exe和lib中的运行库不一致,需要在Properties-Configuration Properties-C/C+±Code Generation-Runtime Library里面都改为/MDd就可以了。

2019-12-31 20:32:23 719

空空如也

空空如也

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

TA关注的人

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