<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CSLDBLYDX的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/CSLDBLYDX</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; CSLDBLYDX]]></copyright><item><title><![CDATA[va_list、va_start、va_arg、va_end的原理与使用]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/75797866</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/75797866</guid><author>CSLDBLYDX</author><pubDate>Sat, 22 Jul 2017 18:37:17 +0800</pubDate><description><![CDATA[va_list、va_start、va_arg、va_end的原理与使用

概述
由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.定义
大家先看几宏.
在VC++6.0的include有一个stdarg.h头文件,有如下几个宏]]></description><category></category></item><item><title><![CDATA[murmurhash]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/54563675</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/54563675</guid><author>CSLDBLYDX</author><pubDate>Sun, 15 Jan 2017 17:39:47 +0800</pubDate><description><![CDATA[murmur hash 是一个高性能，低冲突率的hash算法，由Austin Appleby 2008 年第一次发布


一下是他关于算法一些参数发现的discussion


Discussion
 

(Note, this was written for MurmurHash 1.0 and is only loosely applicable to 2.0) 
 
I]]></description><category></category></item><item><title><![CDATA[shell if 判断]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/50947252</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/50947252</guid><author>CSLDBLYDX</author><pubDate>Mon, 21 Mar 2016 15:54:28 +0800</pubDate><description><![CDATA[[ -a FILE ] 如果 FILE 存在则为真。

[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。

[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。

[ -d FILE ] 如果 FILE 存在且是一个目录则为真。

[ -e FILE ] 如果 FILE 存在则为真。

[ -f FILE ] 如果 FILE 存在且是一个]]></description><category></category></item><item><title><![CDATA[cannot open GHOSTERR.TXT]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/50727252</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/50727252</guid><author>CSLDBLYDX</author><pubDate>Wed, 24 Feb 2016 00:30:02 +0800</pubDate><description><![CDATA[今天装系统，遇到点问题，好久才解决，主要是不同goast之间会有冲突，今天装的goast 和之前安装的goast不同，用PE先格式化c盘 
cannot open GHOSTERR.TXT  格式化c盘
c盘需要激活，估计是配置引导扇区之类
c盘太小，会导致安装不成功
不同盘之间会有冲突，可以用PE 一键goast]]></description><category></category></item><item><title><![CDATA[nodeJs 笔记]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48576119</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48576119</guid><author>CSLDBLYDX</author><pubDate>Sun, 20 Sep 2015 16:21:34 +0800</pubDate><description><![CDATA[require require（path）将文件以一个对象记载进来，模块只有在加载时初始化一次，require得到的可以理解为一个引用，以export导出当前文件的导出对象
export
module js中一个文件是一个模块
通过命令行传递的js 为主模块，node a.js 则a.js 是程序的入口


模块路径解析
内置模块，不作路径解析，直接加载
node_module ,]]></description><category></category></item><item><title><![CDATA[boost库asio详解8——几个TCP的简单例]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48417371</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48417371</guid><author>CSLDBLYDX</author><pubDate>Sun, 13 Sep 2015 18:10:34 +0800</pubDate><description><![CDATA[同步客户端




[cpp] view
 plaincopyprint?






void test_asio_synclient()  
{  
    typedef boost::asio::io_service IoService;  
    // 该命名空间下有几个常用类: accetpt, resolver, endpoint, socket  ]]></description><category></category></item><item><title><![CDATA[linux下使用protobuf实现简单配置功能]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48382515</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48382515</guid><author>CSLDBLYDX</author><pubDate>Fri, 11 Sep 2015 23:44:46 +0800</pubDate><description><![CDATA[前言：

    程序一般需要load一些参数列表，一般来说我们可以通过linux自带的命令行解析函数来搞定(getopt_long，如果需要了解的man一 下，manpage里面是有example的)，但是对于参数太多，我们不可能写满一屏幕进行传参吧，当然，我们的输入在linux里面也是有限制的。所以呢，一般的做法是load一个配置文件，进行解析；最近在研究了一下protobuf的使用，我们]]></description><category></category></item><item><title><![CDATA[RTB竞价中的cookie mapping技术]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48313889</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48313889</guid><author>CSLDBLYDX</author><pubDate>Wed, 09 Sep 2015 11:52:21 +0800</pubDate><description><![CDATA[首先通过一些关键词解释普及或者回顾一下背景，

ADX： Ad exchange的简称。一般特指Ad exchange平台模块

DMP： Data Management Platform的简称。DMP存储了流量、受众的各种特征信息。

DSP： Demand Side Platform的简称。可以看做流量的购买方，为广告主服务。广告主可以通过DSP购买流量，达到营销的目的。DSP可以]]></description><category></category></item><item><title><![CDATA[LibLinear（SVM包）使用说明]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48176959</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48176959</guid><author>CSLDBLYDX</author><pubDate>Wed, 02 Sep 2015 13:33:13 +0800</pubDate><description><![CDATA[LibLinear（SVM包）使用说明之（一）README

zouxy09@qq.com

http://blog.csdn.net/zouxy09

 

      本文主要是翻译liblinear-1.93版本的README文件。里面介绍了liblinear的详细使用方法。更多信息请参考：

       http://www.csie.ntu.edu.tw/~cjli]]></description><category></category></item><item><title><![CDATA[c++ 连redis]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48159679</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48159679</guid><author>CSLDBLYDX</author><pubDate>Tue, 01 Sep 2015 16:28:12 +0800</pubDate><description><![CDATA[今天，本人来学习如何用C++来操作redis数据库。通过hiredis.h接口来实现，目前只能在Linux环境使用。

hiredis.h的下载地址为：https://github.com/redis/hiredis

主要包括如下四个方法

1. redisContext* redisConnect(const char *ip, int port)

该函数用来连接redis数]]></description><category></category></item><item><title><![CDATA[boost::bind]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48157195</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48157195</guid><author>CSLDBLYDX</author><pubDate>Tue, 01 Sep 2015 14:04:23 +0800</pubDate><description><![CDATA[最近在几经波折之后，终于对于boost::bind有点理解了。对于习惯了其他语言的人来说，boost::bind是个挺神奇的东西，它可以将你的方法适配成任何其他的方法。其实这得益于c++的模板以及操作符重载，去看boost::bind的实现就会发现它是一个有n多重载的函数，这些重载主要是为了适应函数的参数个数。

 

其实boost::bind的原理是函数对象，而函数对象就是一个重载了(]]></description><category></category></item><item><title><![CDATA[boost::lexical_cast]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48157037</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48157037</guid><author>CSLDBLYDX</author><pubDate>Tue, 01 Sep 2015 13:53:18 +0800</pubDate><description><![CDATA[boost::lexical_cast为数值之间的转换（conversion）提供了一揽子方案，比如：将一个字符串"123"转换成整数123，代码如下：

string s = "123";
  int a = lexical_castint>(s); 

这种方法非常简单，笔者强烈建议大家忘掉std诸多的函数，直接使用boost:: lexical_cast。如果转换发生了意外，lex]]></description><category></category></item><item><title><![CDATA[ctag 简述]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48155715</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48155715</guid><author>CSLDBLYDX</author><pubDate>Tue, 01 Sep 2015 11:22:40 +0800</pubDate><description><![CDATA[Vi大家都很熟悉，某些情况下它是我们在Linux下唯一可用的文本编辑器。其实我们平时所指的VI其实是VIM（ViImproved，VI增强版）。有人常常拿VIM和emacs比较，VIM尽管不象emacs那样有那么多的功能，但是比emacs更方便、好用。VIM简单易用，只要看看VIM自带的vitutor，大约只要20分钟就能掌握VIM的用法。对于Linux下的C/C++的程序员，使用VIM+Ctag]]></description><category></category></item><item><title><![CDATA[clang_complete]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48104493</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48104493</guid><author>CSLDBLYDX</author><pubDate>Sun, 30 Aug 2015 14:07:13 +0800</pubDate><description><![CDATA[使用vim的各位肯定尝试过各种各样的自动补全插件，比如说大名鼎鼎的 OmniCppComplete 。这一类的插件都是对 Ctags 生成的符号表进行字符串匹配来获得可能的补全项。他们在编写
 C 代码的时候还是很好用的，但是到了 C++ 的环境情况就不同了，各种作用域的存在使得仅仅依靠符号表匹配的方式完全无法发挥作用。

比如我输入一个 SomeType 的对象 bar，然后我想得到成员变]]></description><category></category></item><item><title><![CDATA[redis 笔记]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48088027</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48088027</guid><author>CSLDBLYDX</author><pubDate>Sat, 29 Aug 2015 22:34:48 +0800</pubDate><description><![CDATA[高性能key-value 数据库


set
zset
hash]]></description><category></category></item><item><title><![CDATA[二进制安全]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48091681</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48091681</guid><author>CSLDBLYDX</author><pubDate>Sat, 29 Aug 2015 20:50:23 +0800</pubDate><description><![CDATA[二进制安全

C字符串中的字符必须符合某种编码（比如ASCII），并且除了字符串的末尾之外，字符串里面不能包含空字符，否则最先被程序读入的空字符将被误认为是字符串结尾，这些限制使得C字符串只能保存文本数据，而不能保存像图片、音频、视频、压缩文件这样的二进制数据。

举个例子，如果有一种使用空字符来分割多个单词的特殊数据格式，如图2-17所示，那么这种格式就不能使用C字符串来保存，因为C字符]]></description><category></category></item><item><title><![CDATA[GDB 命令]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/48064063</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/48064063</guid><author>CSLDBLYDX</author><pubDate>Fri, 28 Aug 2015 22:30:12 +0800</pubDate><description><![CDATA[一：列文件清单     
  1．   list（l）
  (gdb)   list   line1,line2     
    
  二：执行程序     
  要想运行准备调试的程序，可使用run(r)命令，在它后面可以跟随发给该程序的任何参数，包括标准输入和标准输出说明符()和外壳通配符（*、？、[、]）在内。     
  如果你使用不带参数的run命令，gdb就再次使用你给]]></description><category></category></item><item><title><![CDATA[SIGPIPE信号]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/47609965</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/47609965</guid><author>CSLDBLYDX</author><pubDate>Thu, 13 Aug 2015 11:29:50 +0800</pubDate><description><![CDATA[使用libevent编写websocket服务端时遇到了一个问题：
浏览器与服务端建立连接后，若刷新或关闭浏览器窗口（未监听相应事件并处理），服务端无法得知连接断开，按理说，这种情况属于client异常终止，跟拔网线的情况类似。这种情况下，服务端不知情，仍保留此连接，仍按照既定逻辑向client写数据，写了两次后，服务端程序终止（多次测试，均是第2次后终止），不是崩溃，是异常终止，非常不解。
]]></description><category></category></item><item><title><![CDATA[Protobuf语言指南]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/47402149</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/47402149</guid><author>CSLDBLYDX</author><pubDate>Mon, 10 Aug 2015 17:46:17 +0800</pubDate><description><![CDATA[Protobuf语言指南
l  定义一个消息（message）类型
l  标量值类型
l  Optional 的字段及默认值
l  枚举
l  使用其他消息类型
l  嵌套类型
l  更新一个消息类型
l  扩展
l  包（package）
l  定义服务（service）
l  选项（option）
l  生成访问类
本指南描述了怎样使用protocolbuffer语言]]></description><category></category></item><item><title><![CDATA[G++ 输出高亮]]></title><link>https://blog.csdn.net/CSLDBLYDX/article/details/47395555</link><guid>https://blog.csdn.net/CSLDBLYDX/article/details/47395555</guid><author>CSLDBLYDX</author><pubDate>Mon, 10 Aug 2015 10:55:16 +0800</pubDate><description><![CDATA[color-compile

show compile message with color when show up error/warning/note using gcc/g++/make

(1) compile ("\make" means using system make, not alias)

$ \make

(2) install (need root per]]></description><category></category></item></channel></rss>