自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 top 内存字段解析

VIRT 虚拟内存中含有共享库、共享内存、栈、堆,所有已申请的总内存空间。RES  是进程正在使用的内存空间(栈、堆),申请内存后该内存段已被重新赋值。SHR  是共享内存正在使用的空间。SWAP 交换的是已经申请,但没有使用的空间,包括(栈、堆、共享内存)。DATA 是进程栈、堆申请的总空间。

2016-07-20 11:19:27 512

转载 Redis的数据回写机制

Redis的数据回写机制分同步和异步两种,同步回写即SAVE命令,主进程直接向磁盘回写数据。在数据大的情况下会导致系统假死很长时间,所以一般不是推荐的。异步回写即BGSAVE命令,主进程fork后,复制自身并通过这个新的进程回写磁盘,回写结束后新进程自行关闭。由于这样做不需要主进程阻塞,系统不会假死,一般默认会采用这个方法。个人感觉方法2采用fork主进程的方式很拙劣,但似乎是唯一

2016-01-16 13:15:24 1926

转载 redis 主从复制

一、Redis的Replication:    这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了。相信在阅读完这篇Blog之后你也可以轻松做到。这里我们还是先列出一些理论性的知识,后面给出实际操作的案例。    下面的列表清楚的解释了Redis Replication的特点和优势。    1). 同一个Master可以同步多个Slaves。  

2014-07-22 10:27:09 588

原创 简单ACE的 Makefile

BIN = messageFILES = Message.cpp\SRC = $(FILES)OBJ = $(FILES)LIBS = -lACE -L./CCFLAGS = -I./ -fpermissive -DACE_HAS_EVENT_POLL -static#CLIB= -lACEBUILD = $(VBIN)#--------------

2013-01-31 16:51:00 1078

原创 lua c++ (一)

lua  脚本function add(a, b) return a+b;end为了调用一个LUA函数,我们首先要把函数压栈。这个函数的结果由参数决定,所以,我们要调用函数将需要lua_call(),调用这个函数之后,返回的结果将在堆栈中存在。整个步骤:1.用lua_getglobal()把add函数放入堆栈2.用lua_pushnumber()把第一个参数

2012-11-02 15:25:08 497

转载 ACE反应器(Reactor)模式(2)

转载自http://www.cnblogs.com/TianFang/archive/2006/12/18/595808.html在Socket编程中,常见的事件就是"读就绪","写就绪",通过对这两个事件的捕获分发,可以实现Socket中的异步操作。Socket编程中的事件处理器在前面我们已经介绍过,在ACE反应器框架中,任何都必须派生自ACE_Event_Handl

2012-09-03 22:57:49 486

转载 ACE反应器(Reactor)模式(1)

转载自http://www.cnblogs.com/TianFang/archive/2006/12/13/591332.html反应器(Reactor):用于事件多路分离和分派的体系结构模式通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞与非阻塞。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等

2012-09-03 22:55:26 515

原创 Linux输出终端字体的颜色设置

echo 要变化颜色的时候,要使用参数-e格式:echo -e :"\033[字背景颜色;字体颜色m字符串\033[0m"echo -e "\033[32m \033[35m hello,world \033[0m"字颜色:30-----------3930:黑31:红32:绿33:黄34:蓝色35:紫色36:深绿37:白色

2012-08-27 20:43:18 3182

转载 关于C++类成员函数的重载、覆盖、隐藏与virtual关键字

1. 重载、覆盖与隐藏1).重载:成员函数具有以下的特征时发生“重载”A.相同的范围(同一个类中)B.函数的名字相同C.参数类型不同(不能进行隐式类型转换)D.Virtual关键字可有可无2).覆盖(也叫“继承”):指派生类函数覆盖基类函数,特征是:A.不同的范围(分别位于基类与派生类中)B.函数名字相同C.参数相同D.基类函数必须有virtual关键字

2012-08-25 12:25:43 844

转载 LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别

LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下: LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。 LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBR

2012-08-21 20:09:57 7105

原创 gcc版本不一样导致的问题--Floating point exception 问题解决

[问题] RedHat AS5 编译的可执行程序拷贝到 RedHat AS4 上运行, 直接报Floating point exception.[原因] glibc 不兼容导致. 详细原因如下引用. Fedora 开发者对 ELF 格式中,提供动态链接的符号的 .hash 段做了变动。新的 .gnu.hash 段,使用 gcc 的 --hash-style=gnu 参数来生成,提供

2012-08-21 19:50:09 6739

转载 va_list,va_start,va_end的用法

概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义:#define _INTSIZEOF(n)   ((sizeof(n)

2012-06-05 12:47:35 836

原创 nocopyable的使用

class noncopyable{protected: noncopyable (void) { } ~noncopyable (void) { }private: // emphasize the following members are private noncopyable (const noncopyable&);

2012-05-28 09:38:44 1715

原创 2012.5.4

/*    类的成员变量要封装成私有的,对数据的保护在类外面访问类的私有成员可以通过类的成员函数来访问*/CGameStart::CGameStart(){ CCommu *pCommu = new CCommu;//pCommu是栈变量。在这里分配的内存必须赋给类的成员变量, //不然局部出了函数释放了,就找不到这块内存,造成内存泄露 m_pCommu

2012-05-04 20:46:15 500

原创 回调函数C++ 实现 第二版

/*类的成员变量要封装成私有的,对数据的保护在类外面访问类的私有成员可以通过类的成员函数来访问*///def.h#include #include using namespace std;typedef enum{ CB_MOVE = 0, // CB_COMEBACK, // CB_BUYEQUIIP, //}cb_type;typedef void(*cb_

2012-05-04 20:38:05 1636

原创 回调函数c++实现。

Callback最本质的特征包括两点:注册和触发C++中如何将类成员函数作为回调函数使用,必须是静态方法吗?必须是静态成员函数或者全局函数来实现回调函数大概原因是普通的C++成员函数都隐含了一个传递函数作为参数,即this指针,C++通过传递this指针给成员函数从而实现函数可以访问C++的数据成员。由于this指针的原因,使得一个普通成员函数作为回调函数时就会因为隐含的thi

2012-05-04 11:59:44 9775 3

转载 typelist 学习

下面我们先来看看如何定义一个TypeList,这样可以对于TypeList先有一个感性的认识。typedef TYPELIST_3(char, int, long) MyTypeList;定义了一个具有三个元素的TypeLsit,这三个元素分别为:char、int、long。TYPELIST_3为Loki库中提供的用于定义TypeList的工具,我们会在本文的后面进行介绍。::

2012-04-12 16:17:48 3362

原创 C++ command model 命令模式

命令模式:将来自客户端的命令请求封装成对象。在客户端和提供服务的服务端增加了一层中间层。 invokerinvoker 负责 1:将来自客户端的命令封装成对象(SetCmd); 2:负责调用提供服务的服务端提供的方法,来响应客户端的命令请求#include #include using namespace std;//鍘ㄥ笀绫?鎻愪緵鍝嶅簲鍛戒护鐨勬柟娉?class Co

2012-04-11 17:20:35 677

原创 c++ template 的包含模型

定义:.h(声明)文件 和.cpp( 定义)文件分别在不同的文件中,  在main.cpp文件中包含.cpp(定义文件)first.h#include #include using namespace std; template void print_typeof(T const&);firstdef.cpp#include "first.h"

2012-04-11 09:13:21 444

转载 modern C++ design type2type 笔记

#include #include using namespace std;templatestruct Type2Type{ typedef T OrgT; };class Widget{ public: Widget(string str, int n) { cout<<str<<":"

2012-04-07 15:07:55 631

转载 modern c++ design Int2Type 笔记

#include using namespace std;class Normal { int _i;public: Normal() { _i = 0; } Normal(const Normal& nml) { _i = nml._i; } // other members omitted};class Polym { int *_pi;

2012-04-07 10:52:19 612

转载 modern c++ design Int2Type的意义

template int v>struct Int2Type{    enum { value = v };};如下:template typename T, bool isPolimorphic>class NiftyContainer{private:    void DoSomething( T* pObj, Int2Typetrue>)

2012-04-06 17:57:56 741

转载 模板的偏特化

总结:模板特化/全特化是指给每一个模板参数一个具体的类型,以具体实现这个模板,而且template后面的尖括号中不带任何内容;模板偏特化是指只给部分模板参数一个具体的类型,来实现这个模板;Partial Template Specialization能够让你在模板(Template)的所有可能的实体中特化出一组子集.1.模板的特化(template specializa

2012-04-06 17:55:46 995

转载 第一章:Policy-Based Class Design 读书笔记

Policy Class (Template)下面的这些Creater叫做“policy class (template)”。它们类似于设计模式里的strategy。它们是语法导向(syntax oriented),而不是标记导向(signature oriented)。换句话说,这些Creater定义的是”怎样的语法构造符合其所规范的class”,而不是“必须实例化那些函数”。

2012-04-05 18:31:46 798

原创 string 转换 char *

C/C++ code#include #include using namespace std;int main(){string str1="Hello";char *str2=const_cast(str1.c_str());coutreturn 0;}

2012-02-25 11:41:25 382

转载 Default Memberwise Initializtion 和Bitwise Copy Semantics 的区别

比如有下面的两个对象a,bA a,b;如果有a=b;如果a=b实施的是bitwise copy semantics,就是说编译器生成的伪代码是memcpy(&b,&a,sizeof(a)).如果是Default MemberWise Initializetion,就是一个个成员进行复制.如果是上面的理解,那么bitwise copy semantics就是Default M

2012-02-09 08:45:04 694

转载 struct linger

TCP连接断开的时候调用closesocket函数,已经讨论过有优雅的断开和强制断开,那么如何设置断开连接的方式呢?是通过设置socket描述符一个linger结构体属性。linger结构体数据结构如下:struct linger{     int l_onoff;     int l_linger;};有三种组合方式:第一种

2012-02-02 16:33:23 386

转载 unix domain socket

使用UNIX Domain Socket的过程和网络socket十分相似,也要先调用socket()创建一个socket文件描述符,address family指定为AF_UNIX,type可以选择SOCK_DGRAM或SOCK_STREAM,protocol参数仍然指定为0即可。          UNIX Domain Socket与网络socket编程最明显的不同在于地址格式不同,用

2012-02-01 09:10:28 509

空空如也

空空如也

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

TA关注的人

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