自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 区块链相关

1.学习链接https://www.jianshu.com/u/0b4c8940c6c5深入浅出区块链https://learnblockchain.cn/2017/11/20/whatiseth/https://learnblockchain.cn/2017/11/24/init-env/迅雷链开放平台https://open.onethingcloud.com/site/docopen.htm...

2018-07-05 11:46:22 249

转载 Redis内存管理的基石zmallc.c源码解读(二)

转载自:https://blog.csdn.net/guodongxiaren/article/details/44783767上一篇博文中,我介绍了zmalloc.c文件中几个常用的函数,接下来给大家介绍一下该文件中的其他函数,其实本文中的很多函数要比上一篇文章中的函数要更有趣的,并且涉及到很多操作系统的知识。前面几个函数比较简单,一笔带过,后面几个是学习的重点。开胃菜zmalloc_enabl...

2018-05-06 16:22:12 236

转载 Redis内存管理的基石zmallc.c源码解读(一)

转载自:https://blog.csdn.net/guodongxiaren/article/details/44747719当我第一次阅读了这个文件的源码的时候,我笑了,忽然想起前几周阿里电话二面的时候,问到了自定义内存管理函数并处理8字节对齐问题。当时无言以对,在面试官无数次的提示下才答了出来,结果显而易见,挂掉了二面。而这份源码中函数zmalloc()和zfree()的设计思路和实现原理,...

2018-05-06 16:21:01 224

原创 clion cmakelists.txt配置实现跳转及编写入门

参考配置:# cmake_minimum_required(VERSION 3.11)project(redis_4_0_9 C)set(CMAKE_C_STANDARD 99)#add_executable(redis_4_0_9 ./src/siphash.c)set( SOURCE_FILES ./src/adlist.c ./s...

2018-05-05 21:38:33 17143

转载 Clion安装配置教程 [C语言编程for Windows]

参考http://www.sunmey.cn/thread-129-1-1.html 1.Clion简介: 产品概述: CLion 是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助 开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深...

2018-05-05 20:38:10 4613

转载 Linux防火墙配置(iptables, firewalld)

转载自:https://www.cnblogs.com/pixy/p/5156739.htmlLinux中的防火墙RHEL中有几种防火墙共存:iptablesfirewalldip6tablesebtables这些软件本身其实并不具备防火墙功能,他们的作用都是在用户空间中管理和维护规则,只不过规则结构和使用方法不一样罢了,真正利用规则进行过滤是由内核的netfilter完成的。扩展:整个linux...

2018-03-16 17:09:40 608

转载 linux CentOS6.5 yum安装mysql 5.6

linux CentOS6.5 yum安装mysql 5.61.新开的云服务器,需要检测系统是否自带安装mysql# yum list installed | grep mysql2.如果发现有系统自带mysql,果断这么干# yum -y remove mysql-libs.x86_643.随便在你存放文件的目录下执行,这里解释一下,由于这个mysql的yum源服务器在国外,所以下载速度会比...

2018-03-06 19:53:32 273

转载 超级详细Tcpdump 的用法

超级详细Tcpdump 的用法1、抓取回环网口的包:tcpdump -i lo2、防止包截断:tcpdump -s03、以数字显示主机及端口:tcpdump -n  第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址

2017-10-20 10:31:31 368

转载 Git SSH Key 生成步骤

Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的git则需要SSH的配置。github的SSH配置如下:一 、设置Git的user name和email:$ git config --global user.name "xuhaiyan"$ git config --global user.email "haiyan.xu.vip@gmail

2017-08-09 21:40:20 546

转载 htttp状态总结

在网站建设的实际应用中,容易出现很多小小的失误,就像MySQL当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于404状态页面设置不正常,导致了google管理员工具无法验证的情况,当然,影响的不仅仅是这一方面,影响的更是网站的整体浏览效果。因此,比较清楚详细的了解http状态码的具体含义,对于一个网站站长来说

2017-05-24 14:37:42 635

原创 vim编辑代码自动补全设置

1.安装vundle插件执行:git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 从git下面下载vundle.vim文件将如下文本设置到/etc/vimrc中set nocompatible " be iMproved, required"fi

2017-05-05 14:34:45 1289

转载 最新版 nginx内置变量 大全

转载自:http://www.tuicool.com/articles/UZf222在配置基于nginx服务器的网站时,必然会用到 nginx内置变量  ,下面笔者将它整理成列表,把最新版本的变量列出来,以方便做配置时查询nginx内置变量内置变量存放在  ngx_http_core_module 模块中,变量的命名方式和apache 服务器变量是一致的。总而言之,这些变量代表

2017-04-26 21:36:15 14213

转载 lua string模式匹配

转载自:http://www.cnblogs.com/whiteyun/archive/2009/09/02/1541043.html模式匹配函数在string库中功能最强大的函数是:string.find(字符串查找)string.gsub(全局字符串替换)string.gfind(全局字符串查找)string.gmatch(返回查找到字符串的迭代器)

2017-04-25 20:25:47 5737 1

原创 astyle代码格式化工具

测试环境vs20121.目的  作为程序员,代码规范的重要性毋庸置疑。每时每刻,都要牢记规范代码规则。自身坚持做好,是很不容易的。但是很多时候,需要修改别人的代码,比如改别人的bug。别人的代码风格可能跟自己不同,此时要尽量尊重并遵循别人的风格,做到该项目代码风格一致。但如果别人的代码的确有很多不符合公共规范的地方,靠手工去修改时比较繁琐的。        因此这里需要引入第三方工具,来美

2017-04-08 12:50:41 538

原创 Linux下进程间通信之消息队列

1.消息队列    1)创建消息队列        原型:            int msgget(key_t key, int msgflg);        作用:            创建或打开消息队列。        参数:            key:设置队列关键值,消息队列发送端和接收端使用同一值。            msgflg:可以与IP

2017-03-12 22:40:29 255

原创 线程操作基础

1.线程基本函数    1)线程创建        原型:            int pthread_create(pthred_t *restrict tidp, const pthread_attr_t *restrict_attr, void* (*start_rtn)(void*), void *restrict arg);            作用:

2017-03-12 21:40:55 239

原创 socket网络编程基础

一.socket编程函数1.socket函数原型:int socket(int domain, int type, int protocol);作用: 创建一个端点并返回一个socket描述符。参数解析:domain: 指定一个会话域名,选择一个协议族用于这个会话。包含于中。目前默认格式包括    AF_UNIX,AF_LOCAL  AF_INET  AF_INET

2017-03-07 17:41:56 305 1

转载 如何定位死循环或高CPU使用率(linux)

from http://blog.chinaunix.net/uid-22145625-id-4295830.html确定是CPU过高使用top观察是否存在CPU使用率过高现象找出线程对CPU使用率过高的进程的所有线程进行排序ps H -e -o pid,tid,pcpu,cmd --sort=pcpu |grep xxx得到如下结果,其中线程2909使用了

2017-03-01 15:20:42 502

原创 h5做app和原生app有什么区别

H5开发的web APP和原生APP的区别有以下几个方面:一、开发方面 原生App ⊙ 每一种移动操作系统都需要独立的开发项目⊙ 每种平台都需要独立的开发语言。Java(Android), Objective-C(iOS)以及Visual C++(Windows Mobile)等等⊙ 需要使用各自的软件开发包,开发工具以及各自的控件 移动Web App⊙ 因为运行在移动设备的浏览器

2017-01-17 11:11:49 1999

转载 WebSocket与http的区别,以及它的原理

一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充可以通

2017-01-16 19:10:50 7816

转载 socket阻塞与非阻塞,同步与异步、I/O模型

目录(?)[-]1 概念理解2 Linux下的五种IO模型阻塞IO模型非阻塞IO模型 IO复用模型信号驱动IO异步IO模型5个IO模型的比较3 selectpollepoll简介socket阻塞与非阻塞,同步与异步1. 概念理解     在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblo

2017-01-16 17:20:30 317

转载 openssl下https实现流程

WeTest 导读用epoll编写一个高并发网络程序是很常见的任务,但在epoll中加入ssl层的支持则是一个不常见的场景。腾讯WeTest服务器压力测产品,在用户反馈中收到了不少支持https协议的请求。基于此,本文介绍了在基于epoll的高并发机器人框架中加入openssl,实现对https支持时的基本实现思路。一、背景2014年,谷歌在其官方博客中发布公告称,为了打造

2016-12-09 09:57:37 12781

转载 tcp长连接和保活时间

TCP协议中有长连接和短连接之分。短连接在数据包发送完成后就会自己断开,长连接在发包完毕后,会在一定的时间内保持连接,即我们通常所说的Keepalive(存活定时器)功能。默认的Keepalive超时需要7,200,000 milliseconds,即2小时,探测次数为5次。它的功效和用户自己实现的心跳机制是一样的。开启Keepalive功能需要消耗额外的宽带和流量,尽管这微不足道,但在按流量

2016-09-28 15:17:56 16486

转载 c++中string类的详解

通过在网站上的资料搜集,得到了很多关于string类用法的文档,通过对这些资料的整理和加入一些自己的代码,就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了!下面先罗列出string类的函数有哪一些,然后再罗列出函数的原型,最后到代码的实现标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下,只起一个抛砖

2016-08-21 15:04:13 346

转载 不带缓冲IO和带缓冲IO

先来看看不带缓存的I/O和标准(带缓存的)I/O都有那些不带缓存的I/O:       read,write,open......标准(带缓存的)I/O: fgets,fread,fwrite.....这里使用两个对应的函数进行比较:ssize_t write(int filedes, const void *buff, size_t nbytes)size_t fwrit

2016-08-07 11:56:53 293

转载 crontab命令

前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。一、crond简介crond是linu

2016-08-02 15:56:08 235

转载 Linux下的tar压缩解压缩命令详解

tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出

2016-07-10 10:31:05 453

原创 getaddrinfo函数ipv6的应用

1..通过域名转换为点分十进制ipv6地址addrinfo转换为sockaddr_in62.程序#include #include #include #include #include #include #include int main(int argc, char **argv){ if (argc != 2) { fprintf(stderr, "U

2016-07-05 17:59:43 4274 2

原创 c++ 封装ipv6类

一. socket编程函数1.1   基本函数     socket、bind、listen、connect、read/send、write/recv、close函数。1.2 信息获取函数  1)支持ipv6和ipv4    gethostbyname    getpeername    getsockname    getaddrinfo  2

2016-07-01 18:30:46 2828

原创 linux下ipv6配置及ipv6编程的connect问题

因为需要封装socket ipv6,所以程序中需要将ipv6设置成固定。不然connect直接将ipv6的地址作为参数将连接不上服务器,提示Connect : Invalid argument。应该是和-I eth0参数有关。直接配置固定ipv6地址将解决这个问题。

2016-06-30 19:05:43 7854 1

转载 C++多态

1.   什么是多态多态是C++中的一个重要的基础,可以这样说,不掌握多态就是C++的门外汉。然而长期以来,C++社群对于多态的内涵和外延一直争论不休。大有只见树木不见森林之势。多态到底是怎么回事呢?说实在的,我觉的多态这个名字起的不怎么好(或是译的不怎么好)。要是我给起名的话,我就给它定一个这样的名字--“调用’同名函数’却会因上下文不同会有不同的实现的一种机制”。这个名字长是长了点儿,可是

2016-05-30 15:36:35 459

转载 pthread_cancel用法及常见问题

先看下面一段程序:[cpp] view plaincopy#include       #include       #include       #include         void*   func(void   *)   {    pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);           

2016-05-27 14:13:04 3878 3

转载 Linux线程属性总结

目录(?)[-]一线程的作用域scope二线程的绑定状态binding state三线程的分离状态detached state四线程的优先级priority五线程的栈地址stack address六线程的栈大小stack size七线程的栈保护区大小stack guard size八线程的调度策略schedpolicy九线程并行级别concurrency

2016-04-18 16:17:40 318

原创 老男孩Linux运维04-配置secureCRT远程连接Linux及功能配置

1.Windows下远程连接Linux服务器的工具    secureCRT、xshell等。    远程连接Linux服务器失败的原因:       1)服务器防火墙iptables       2)Linux服务器未开ssh服务或ssh服务端口号被改(一般为22)       3)Windows到Linux服务器的网络链路有问题2.secureCRT简介  

2016-02-20 22:14:42 1188

原创 大话设计模式之四 代理模式

什么是代理模式?在GOF的《设计模式:可复用面向对象软件的基础》一书中对代理模式是这样说的:为其他对象提供一种代理以控制对这个对象的访问。结合上面的游戏代理的例子和下面的图,我们来进行分析一下。以前你是这样玩游戏:现在有了游戏代理,你是这样玩游戏:代理服务器干了什么?它代替你去和游戏服务器进行交互。它访问游戏服务器的速度比你使用校园网访问游戏服务器的速度快很

2015-11-01 22:24:12 430

原创 大话设计模式之二 策略模式(Strategy)

组成—抽象策略角色: 策略类,通常由一个接口或者抽象类实现。—具体策略角色:包装了相关的算法和行为。—环境角色:持有一个策略类的引用,最终给客户端调用。Strategy(抽象策略类):1、 定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,Context使用这个接口调用不同的算法,一般使用接口或抽象类实现。ConcreteStr

2015-10-31 21:59:55 405

原创 大话设计模式c++实现之一 简单工厂模式

简单工厂模式解释:        简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式的UML图:        简单工厂模式中包含的角色及其相应的职责如下:

2015-10-31 17:35:09 429

原创 STL模板map erase函数使用注意

STL的map表里有一个erase方法用来从一个map中删除掉指令的节点eg1:map mapTest;typedef map::iterator ITER;ITER iter=mapTest.find(key);mapTest.erase(iter); 像上面这样只是删除单个节点,map的形为不会出现任务问题,但是当在一个循环里用的时候,往往会被误用,那是因为

2015-10-08 16:35:48 433

转载 gcc/g++ 静态动态库 混链接.

转载自:http://blog.csdn.net/wangxvfeng101/article/details/15336955我的环境: centos6 x64. gcc4.4.7在使用gcc/g++ 编译程序时我们希望指向一些库是使用静态的链接方式. 另外的一些是动态的方式.我以boost 为例.如果我们要使用静态库则是这样的:# g++ main

2015-09-25 09:54:06 465

原创 HttpRouter项目中的问题

1.在开发过程中,使用vector数组,编译链接时没有问题,但是运行时new一个包含该vector数组的类再调用该类的其它成员时报错(内存访问错误)。原因:没有包含vector数组的头文件#include 我也是醉了~~~ 这个不应该是在编译的时候报错的么。

2015-09-22 20:02:44 688

astyle代码格式化工具

代码格式化工具及源代码,可格式化如vs等

2017-04-08

空空如也

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

TA关注的人

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