自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (5)
  • 收藏
  • 关注

原创 cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <四>

CMAKE_BUILD_TYPE  宏匹配问题:错误代码: # Linux operation system IF (CMAKE_BUILD_TYPE MATCHES "Debug" OR CMAKE_BUILD_TYPE MATCHES "None" OR CMAKE_BUILD_TYPE MATCHES "")

2015-06-18 15:23:13 2342

原创 简单的C/S 程序 windows 版

很早写的了,感觉有点烂。// server.cpp 服务器主要程序逻辑#include #include #include #include #include #pragma comment(lib, "WS2_32.LIB") static DWORD __stdcall ThreadFunc(LPVOID lpParam);int main(){

2015-05-01 21:22:07 1449

原创 CMAKE 中平台判断

CMAKE  中判断当前操作系统平台:MESSAGE(STSTUS "###################################")MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")IF (CMAKE_SYSTEM_NAME MATCHES "Linux") MESSAGE(STATUS "current platf

2015-04-28 22:03:31 17852

原创 CMAKE 指定编译调试版本或者发布版本

# CMAKE 中可以像Windows 一样指定编译成Debug 版本还是Release 版本# 这个在使用cmake 命令时指定# 如:cmake -DCMAKE_BUILD_TYPE=Debug/Release ../source_codeIF (CMAKE_BUILD_TYPE MATCHES "Debug" OR CMAKE_BUILD_TYPE MATCHES "

2015-04-28 13:52:48 10808 1

原创 SHELL 中的数组

# 定义一个数组ARR_NAME="shardb_server login_server world_server gateway_server log_server"# 显示整个数组printf '${ARR_NAME[*]} = 'echo ${ARR_NAME[*]}# 声明数组declare -a SVRSi=0for NAME in ${ARR_NAME}do

2015-04-26 09:43:31 492

原创 cmake 学习之路 笔记<一>

CMAKE 中有一些默认定义的变量,我们可以直接使用,在有时候是很方便的。1、CMAKE_SOURCE_DIR ==> 这个是最顶层的cmake 目录2、PROJECT_SOURCE_DIR==> 这个是当前项目的目录3、PROJECT_BINARY_DIR==> 这个应该是你执行cmake 命令生成Makefile 文件的目录

2015-04-20 23:12:22 458

原创 dup2()

dup2(fd1, fd2); 函数功能是将fd1 复制到fd2 上。但是怎么理解呢?APUE 上有写,如果fd2 是一个已经打开的文件描述符则关闭它,但是如果fd1和fd2 相等,则不会关闭。这最终的结果,实际上是:当你调用write() 函数(或者其它相关文件描述符的函数) 最终的结果是全部写到了fd1 上,当然了,如果是读也是一样的效果。最终都是从fd1 中读。我前初一直

2015-04-18 22:32:50 674

原创 不同进程之间的线程互斥锁的使用

/* process_svr.c */#include #include #include #include #include #include #include #include #include #include #define NONE "\033[m"#define RED "\033[0;32;31m"#define LIGHT_RED "\033[1;31

2015-04-11 20:42:12 4687

原创 setitmer() linux 下的精确定时函数

#include #include #include #include #include void alrm_func(int sn);int main(int argc, char *argv[]){ signal(SIGALRM, alrm_func); // 第一次在1.0 秒后,之后每0.5 秒发送一个SIGALRM 信号 struct itimerval iti

2015-04-11 20:31:01 727

转载 pthread_once 函数

转自:http://blog.youkuaiyun.com/lmh12506/article/details/8452659在多线程环境中,有些事仅需要执行一次。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始化(pthread_once)会比较容易些。int pthread_once(pt

2015-04-11 15:15:55 739

原创 cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <三>

在使用CMAKE 的过程中遇到了一个问题:在程序代码中将自己的中间代码编译成一个静态库,提供给其它的几个程序代码时,总是找到这个库。愁了好久,终于在一个不起眼的小地方,发现了一个可能的问题。在使用TARGET_LINK_LIBRARIES( )时,链接到安装在/usr/local/lib/libprotobuf.a 时使用两种书写情况都OK。TARGET_LINK_LIBRAR

2015-01-04 21:15:25 1928

原创 libevent bufferevent_enable(bev, EV_READ) 失败!

留下一个问题吧:        使用libevent 做网络库,创建一个服务端,        1、初始化struct event_base 成功;        2、创建监听器成功,evconnlistener_new_bind();        3、创建信号事件成功,evsignal_new() 成功;        4、添加信号事件成功,event_add() 成功;

2015-01-03 22:47:26 5204 2

原创 libevent evsignal_new() 信号事件回调函数未被触发。

之前一直使用libevent 信号注册事件函数:evsignal_new() 进行信号事件注册。然后也一直都很正常,但是有一次,这个函数也一样的使用,结果发送信号时,回调函数却没有被调用。与之前的代码进行对比,却没有任何不一样的地方。苦恼了好久,终于在今天花了几个小时的时间找到了这个问题的解决方法。只要在evsignal_new() 函数调用成功之后,再调用event_add() 函数,即可。

2015-01-03 01:38:33 5342 1

原创 libevent evconnlistener_new() 创建监听器函数

libevent 的创建监听器 evconnlistener_new() evconnlistener_new_bin() 的简单讲解。

2014-12-31 14:47:18 3887

原创 C++ 类成员函数中的静态变量的作用域

本来的一个想法是C++ 的类的成员函数是属于这个类的,那么这个类的成员函数中的静态变量也是属于这个类的。不过越想越感觉不对劲,于是写了个测试代码,试了一下。还真不对,结果是类的成员函数中的静态变量,他的作用域是这个成员函数,不管是不是这个类的同一个实例化对象,他们都共用这一个静态变量。也就是说函数的静态变量还是跟C 一样的解释。直接给出测试代码吧。// test.h#ifndef

2014-12-28 13:25:24 8219 1

原创 libevent 客户端,简单整理

#include #include #include #include #include #include #include const unsigned short PORT = 9995;void readcb(struct bufferevent *bev, void *ptr){ char buf[1024]; int n; struct evbuffer *

2014-12-15 17:14:23 2778

原创 libevent 服务器代码,简单的整理。

#include #include #include #ifndef WIN32#include # ifdef _XOPEN_SOURCE_EXTENDED# include # endif#include #endif#include "event2/bufferevent.h"#include "event2/buffer.h"#include "event2/

2014-12-15 17:11:08 1587

原创 C++ Json 对文件的读写操作

#include #include #include "json.h"static bool write_jscon( const char * json_file, const Json:: Value & val){           if ( json_file == NULL)                    return false;

2014-12-11 15:44:39 5212 1

原创 C++ 临时变量做函数参数时的生命周期

C++ 中如果函数参数是一个类对象的引用时,是否可以创建一个临时变量来传入呢?这里其实考虑的主要是这个临时变量的生命周期,到底是在进入函数时就被销毁了,还是在函数调用完成之后才被销毁的。暂时还没有看到比较权威的资料,只是写了一段代码看了一下现象,从现象上看该临时变量是在函数调用完成之后才被销毁的。下面的一段代码在Windows  和CentOS 下做过测试,结果是一样的。

2014-11-26 18:05:00 3445

原创 boost TCP 异步读/写操作 函数接口

异步写方法一:boost::asio::io_service ioservice;boost::asio::ip::tcp::socket m_socket(ioservice);// 写到对端数据是:"link successed!"boost::asio::async_write(     m_socket,     // 与对端通信的连接描述符     boo

2014-11-25 11:31:07 1034

原创 boost bind 全局函数(非成员函数)

一般boost::bind() 函数的调用,第一个参数是绑定函数指针,第二个参数是指定这个函数所属的类对象指针。后面开始是这个函数所需要的参数,顺序给出即可。如果boost::bind() 想要绑定到一个全局函数(非类成员函数) 的话,只需要忽略类对象指针即可,第二个参数直接传递该函数所需要的参数。

2014-11-25 11:27:53 850

原创 boost tcp 同步方式 笔记

// server 端#include #include int main(int argc, char *argv[]){ // 所有的asio 类都需要io_service 对象 boost::asio::io_service iosev; boost::asio::ip::tcp::acceptor acceptor( iosev, boost::asio::ip::t

2014-11-19 10:53:32 627

原创 cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <二>

PROJECT(HELLOLIB)# 添加子项目ADD_SUBDIRECTORY(lib)# 设置二进制库文件的生成目录SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)按照上面的

2014-11-09 16:18:16 627

原创 cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <一>

connot find source file:

2014-11-09 14:56:49 506

转载 10个我最喜欢问程序员的面试问题

10个我最喜欢问程序员的面试问题2014-11-04    分类:程序员人生5人评论分享到:更多本文是码农网原创翻译,转载请看清文末的转载要求,谢谢合作!最近我拜读很多文章,都是介绍面试问题的,我真心不理解,面试官代表公司想要聘用的是最优秀的程序员,那就意味着需要想出一些有意义的面试问题。如果你就提一些毫无用处的垃圾问题,那么很容易遗漏很多能干的程序员。

2014-11-05 13:55:54 829

原创 protobuf mutable_* 函数

protobuf mutable_* 函数从该函数的pu

2014-10-31 10:30:45 34170 1

原创 mysql 主键

主键:

2014-10-25 21:54:55 604

原创 protobuf 使用的开头和结尾

使用protobuf 的一个好习惯就是在程序

2014-10-25 14:18:08 1290

原创 protobuf 一个.proto 文件的简单讲解

package tutorial;message Person { required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message Pho

2014-10-25 10:50:59 3513

原创 protobuf 的序列化与反序列化

bool ParseFromString(const string& data);

2014-10-25 10:09:04 15966

原创 运行程序找不到动态链接库

现象:

2014-10-24 11:05:50 5476

原创 SVN Windows 没有对应文件的状态符号

昨天在Windows 下安装了一个SVN 客户端,档下了代码后,发现档下的文件跟以前的SVN 档下的文件不一样。文件或者文件夹上没有区别该文件与服务器的不同或者相同的符号,比如

2014-10-10 10:25:33 4160

原创 一个简单的C/S 架构程序

// server.c#include #include #include #include #include #include #include #include // 通过命令行参数传入绑定端口号int main(int argc, char *argv[]){ if (argc < 2) { fprintf(stderr, "Usage: %s .\n", a

2014-07-21 23:06:23 1483

原创 提炼字符串

/* * 功能:提炼字符串;按第二个参数为分隔符解析字符串,返回由 * 参数nWhichOne 指定下标(由1开始计算)处的字符地址,其 * 长度保存在参数pLength 中。 * 参数: * const char *szSourcString, 要解析的字符串; * char chSeparator, 指定分隔符; * int nWhichOne, 指定要得到解析出来的第

2014-06-20 14:06:00 644

原创 Win32 TCP粘包处理,源代码。

// #ifndef SHARE_HEAD_FILE_H#define SHARE_HEAD_FILE_H#define PORT (8888)#define DATA_SIZE (4000)// 在网络上传输结构体,指定结构体的字节对齐#pragma pack(4)struct STRU_Package{ unsigned long lDataLength; // arrBu

2014-05-15 22:11:17 661

原创 剔除冗余空格字符

// 剔除冗余的空格字符(第一个和最后一个字符不能为空格字符,中间空格不能有连续两个存在int RemoveUnnecessarySpaceBar(char *strSource){ if (strSource == NULL) return -99; int nLen = strlen(strSource); char *pStringPtr = new char[nLen +

2014-03-25 19:55:19 1073

原创 Win32 ::CreateEvent() 函数

HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes,// 安全属性BOOL bManualReset,// 复位方式BOOL bInitialState,// 初始状态LPCTSTR lpName // 对象名称);// 函数介绍:创建一个事件内核对象,当该事件内核对象为受信状态时,所以等待该事件内核

2014-03-20 15:43:36 2993

转载 Linux 链接库

静态链接库创建:zj@zj:~/C_pram/practice$ gcc -c fun.czj@zj:~/C_pram/practice$ ar cqs libfun.a fun.ozj@zj:~/C_pram/practice$ gcc call.c -static -L. -lfun -o fun_static_callzj@zj:~/C_pram/practice$ ./fu

2013-08-20 12:43:19 718

转载 程序员的自我修养链接地地址

http://www.cnblogs.com/zhuyp1015/category/376363.html

2013-08-06 14:38:45 622

转载 setsockopt 函数说明

简述:设置套接口的选项。#include sys/types.h>#include int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen);sockfd:标识一个套接口的描述字。level:选项定义的层次;支持SOL_SOCKET、IP

2013-03-25 20:04:36 1096

基于log4cplus-1.2.0-rc5 版本自实现的一个appender(RollingAppender)

同时兼具RollingFileAppender 和TimeBasedRollingFileAppender 转存文件的功能。也具备以当前日期作为目录存储日志文件。

2017-05-08

ppl-0.10.2-11.el6.x86_64.rpm

ppl-0.10.2-11.el6.x86_64.rpm

2015-08-05

MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0

MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0

2015-06-09

libevent 中文手册

libevent 参考手册(中文版) .PDF 格式

2014-12-13

jsonsrc.zip

json 源代码,有时到JSON 官网,总是打不开某些网站。

2014-12-11

空空如也

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

TA关注的人

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