- 博客(6)
- 收藏
- 关注
原创 快速理解ace库以及它是如何包装完成端口的
符号说明=>表示有这个成员->表示有这些子类. 表示类的成员==>表示调用-->接着调用R_N 重复N次1.ACE采用了声明和实现分离的方式,来完成各个模块,并且实现这个模式中的统一思想为:包装类 => 实现类的基类 -> 各具体实现类.要想很好的看懂ace的代码,理解这个模式是很重要的,因为通常需要定位到具体的实现类上去看源代码,以下列出了ACE几个核心的类的
2012-06-08 17:32:47
2153
原创 linux下程序崩溃后记录调用堆栈.以便查找问题
在linux下程序崩溃后,一般都会有coredump,但是这个coredump有时候会被截断(尽管已经设置了ulimit -c unlimited也会),导致没法用gdb查看问题所在。只好想办法在程序崩溃时自己记录下堆栈信息。思路是:1.注册信号处理函数,处理所有默认行为为终止程序的信号。2.用backtrace得到发生问题的线程的堆栈调用地址列表。3.用backtrace_s
2012-02-20 14:35:54
6535
原创 用CMake将visual studio 项目转到linux下编译
在Windows下用VS2010编写并编译项目,然后将项目的结构组织和文件复制到linux下编译, 这样应该会提高工作效率.但Linux下编译需要makefile文件,怎么样快速的进行从VS2010到makefile的转换呢?在查了大量资料之后总结出下面3种方法:1.手工写mak
2011-07-10 12:32:28
10409
1
原创 智能指针 shared_ptr 的用法误区.
实际开发过程中,可能会有这样的用法:class a{ class b { ... shared_ptr a_ptr; } ... b b_;}shared_ptr test_ptr(new a);test_ptr->b_.a_ptr = test_ptr;test_ptr.reset();这个写法会造成内存泄漏, 原因是要释放 b_. a_ptr 的内存,需要b_析构,但b_的析构却需要 a本身构造.这就造成了矛盾.另外,基类和派生类的智能指
2011-04-01 21:06:00
1264
原创 boost socket 用法
<br />boost socket 用法<br />要用得明白,必须还要了解endpoint,它用来设置ip,端口,协议类型.<br /><br />1.asio::ip::tcp::acceptor 侦听类socket用法<br />用法示例:<br /> <br />boost::asio::io_service io_service_;<br />boost::asio::ip::tcp::acceptor acc(io_service_);<br />//这步创建了一个有效的socket.<br
2011-03-30 23:59:00
8070
原创 boost asio 学习总结之 io_service
<br />boost 版本 1_45_0<br />io_service 为异步I/O对像提供核心功能.以下是我们常用对象:<br />boost::asio::ip::tcp::socket<br />boost::asio::ip::tcp::acceptor<br />boost::asio::ip::udp::socket<br />这些对象的构造函数里都有一个必须的参数就是io_service&,<br />也就是说每个异步对像都需要1个io_service.但可以共用一个公共的io_servi
2011-03-30 22:30:00
10051
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人