C++ XML解析之TinyXML篇
摘要:最近使用TinyXML进行C++ XML解析,感觉使用起来比较简单,很容易上手,本文给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方法来完成。以后的文章里会讲解使用Xerces进行C++ XML解析的例子,希望大家一起交流。TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。
阅读全文
posted @
2012-12-26 16:46
青茶柠檬
阅读(245)
推荐(0)
select, iocp, epoll,kqueue及各种I/O复用机制(转)
摘要:首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions)blocking I/O 这个不用多解释吧,阻塞套接字。下图是它调用过程的图示:重点解释下上图,下面例子都会讲到。首先application调用 recvfrom()转入kernel,注意kernel有2个过程,wait for data和copy data from kernel to user
阅读全文
posted @
2012-05-18 17:50
青茶柠檬
阅读(248)
推荐(0)
select 和 epoll
摘要:select 和 epoll最近有朋友在面试的时候被问了select 和epoll效率差的原因,和一般人一样,大部分都会回答select是轮询、epoll是触发式的,所以效率高。这个答案听上去很完美,大致也说出了二者的主要区别。 今天闲来无事,翻看了下内核代码,结合内核代码和大家分享下我的观点。 一、连接数我本人也曾经在项目中用过select和epoll,对于select,感触最深的是linux下select最大数目限制(windows 下似乎没有限制),每个进程的select最多能处理FD_SETSIZE个FD(文件句柄), 如果要处理超过1024个句柄,只能采用多进程了。 常见的使用sle
阅读全文
posted @
2012-05-18 17:42
青茶柠檬
阅读(445)
推荐(0)