关闭

C++设计模式:单例模式

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。        单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做...
阅读(296) 评论(0)

Windows IOCP 完成端口(CompletionPort)详解

手把手叫你玩转网络编程系列之三    完成端口(Completion Port)详解                                                              ----- By PiggyXP(小猪) 前 言         本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿...
阅读(589) 评论(1)

epoll的LT和ET使用EPOLLONESHOT

epoll的总结之四LT和ET使用EPOLLONESHOT 在前面说过,epoll有两种触发的方式即LT(水平触发)和ET(边缘触发)两种,在前者,只要存在着事件就会不断的触发,直到处理完成,而后者只触发一次相同事件或者说只在从非触发到触发两个状态转换的时候儿才触发。 这会出现下面一种情况,如果是多线程在处理,一个SOCKET事件到来,数据开始解析,这时候这个SOCKET又来了同样一个这样的事...
阅读(1819) 评论(0)

C++ 线程池,任务池实现实例

commondef.h 复制代码 代码如下: //单位秒,监测空闲列表时间间隔,在空闲队列中超过TASK_DESTROY_INTERVAL时间的任务将被自动销毁 const int CHECK_IDLE_TASK_INTERVAL = 300; //单位秒,任务自动销毁时间间隔 const int TASK_DESTROY_INTERVAL = 60; //监控线程池是否为空时间间...
阅读(1446) 评论(0)

linux 内存泄露,数组越界检测工具valgrind

Linux c/c++上常用内存泄露检测工具有valgrind, Rational  purify。Valgrind免费。Valgrind 可以在 32 位或 64 位 PowerPC/Linux 内核上工作。 Valgrind工具包包含多个工具,如Memcheck,Cachegrind,Helgrind,  Callgrind,Massif。下面分别介绍个工具的作用: Memchec...
阅读(1340) 评论(0)

windows 编译libxml2 64位及32位都可以使用

1、libxml2的源码版本为libxml2-2.9.0, libxml2需要使用到iconv.lib,所以先把iconv.lib编译出来 iconv.lib源码版本为1.13.1 2、新建一个VC空工程(libIconv) (1)libIconv工程下新建一个文件夹Iconv (2)将下载的库中lib文件夹下的所有文件拷贝到这个文件夹下 (3)将烤入到Iconv文...
阅读(2324) 评论(1)

容器中使用erase的正确姿势(List Iterator Not Incrementable)

使用容器中的erase遇到"List Iterator Not Incrementable"问题,正确食用erase的姿势,以list为例 举个例子: 1. list sList; list::iterator sP; sList.push_back(1); sList.push_back(3); sList.push_back(5); sList.push_back(7); f...
阅读(448) 评论(0)

windows磁盘相关API实践说明

原帖地址:http://www.cnblogs.com/matrix-r/p/3288886.html API的列表如下,网上找的,我觉得还是蛮详细的: 磁盘和驱动器管理API GetLogicalDrivers      获取主机中所有的逻辑驱动器,以BitMap的形式返回. GetLogicalDriverString   获取主机中所有的逻辑驱动器,以...
阅读(436) 评论(0)

libxml2 主要函数用法

许多事物符合80/20法则,libxml中也是20%的函数提供了80%的功能。下面的列表列出了libxml的主要函数及其用法说明。 1.   全局函数说明 头文件引用 xml2config --cflags 库文件引用 xml2config --libs 主要头文件 parse.h tree.h xpath....
阅读(360) 评论(0)

libxml2剖析(1):功能特性

1、概述     本文整理自官方页面http://xmlsoft.org/。     Libxml2是一个用来解析XML文档的函数库。它用C语言写成,并且能为多种语言所调用,例如C语言, C++, C#, Python, Kylix/Delphi, PHP, Ruby, Pascal, Tcl等。Perl中也可以使用XML::LibXML模块。它最初是为GNOME开发的项目,但现在可以用在各种...
阅读(433) 评论(0)

libxml2剖析(2):编译

1、Linux/Unix下的编译     内容整理自http://xmlsoft.org/FAQ.html中一些部分。     跟大多数UNIX库一样,libxml2的编译遵循以下“标准”: [plain] view plaincopy gunzip -c xxx.tar.gz | tar xvf -  (或者tar xzvf libxml2-xxxx.tar.gz) ...
阅读(798) 评论(0)

libxml2剖析(3):使用教程

本文整理自官方使用教程http://xmlsoft.org/tutorial/index.html。     示例文档story.xml如下: [html] view plaincopy xml version="1.0"?>  story>    storyinfo>      author>John Fleckauthor>      datewritten>June...
阅读(1261) 评论(0)

socket编程 及select poll epoll示例

1、关于字节排序    网际协议采用大端字节序,来传输多字节整数。    系统提供了转换的宏定义,如果主机与网际协议相同,则宏定义为空。 2、客户端    socket -> connect(阻塞,三次握手)-> rcv 3、服务器端    socket -> bind -> listen -> accept(阻塞,三次握手)-> send4、函数介绍          a..socket ...
阅读(664) 评论(0)

ubuntu 下VIM安装YourCompleteMe(中间问题已解决)

要安装YouCompleteMe ,vim须支持python。看是否支持,可以在vim中:version 查看, 如果python前有+号,就是支持,减号就是不支持。 如果不支持,需要以编译安装方式重新安装vim。 编译配置选项: ./configure --with-features=huge --enable-pythoninterp --enable-python3interp --e...
阅读(1440) 评论(0)

VIM常用配置文件

set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 syntax on set history=100 set mouse=a set selection=exclusive set selectmode=mouse,key set showmatch set autoindent set smartindent...
阅读(338) 评论(0)
41条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:46768次
    • 积分:631
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:29篇
    • 译文:0篇
    • 评论:10条
    文章分类
    最新评论