平台:VS2010版本:1.04我们先看看消息队列的数据结构:typedefstructRAW_QUEUE
{
RAW_COMMON_BLOCK_OBJECTcommon_block_obj;
RAW_MSG_Qmsg_q;
RAW_VOID(*queue_send_notify)(structRAW_QUEUE*queue_ptr);
}RAW_QUEUE;RAW_MSG_Q:typedefstructRAW_MSG_Q{
RAW_VOID**queue_sta..
分类:
其他好文 时间:
2014-05-15 08:35:51
阅读次数:
318
std::auto_ptr 析构的时候调用 delete
操作符来自动释放所包含的对象boost::scoped_ptr / boost::scoped_array不能传递它所包含的对象的所有权
到另一个作用域指针boost::shared_ptr /boost::shared_array在内部记录...
分类:
其他好文 时间:
2014-05-15 02:01:07
阅读次数:
353
当进程中的某一个线程调用了exit、_Exit、_exit,那么整个进程会终止。同样,一个信号发送到某个线程,而该信号的默认动作是终止,整个进程也会终止。
单个进程的终止有三种方法:
从程序正常返回。线程自身调用pthread_exit。被同一进程中的其它线程取消。
先来看看前两种情况。
void pthread_exit(void *rval_ptr); // 退...
分类:
编程语言 时间:
2014-05-14 15:13:07
阅读次数:
428
如果一个多层次的数据结构达到两级或者两级以上,举例如下:
struct A{
int array_member[100];
//其他数据成员
};
struct B{
struct A *a_ptr;
//其他数据成员
}
那么通过B类型的指针b_ptr访问A类型的array_member的某一个元素array_member[0]则需要使用b_...
分类:
编程语言 时间:
2014-05-13 06:00:59
阅读次数:
270
循环引用:引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下:#include#include#include#includeclassparent;classchildren;typedefboost::shared_ptr
parent_pt...
分类:
其他好文 时间:
2014-05-09 13:01:22
阅读次数:
326
ssh登录服务器时总是要停顿等待一下才能连接上,这是因为OpenSSH服务器有一个DNS查找选项UseDNS默认是打开的。UseDNS选项打开状态下,当客户端试图登录OpenSSH服务器时,服务器端先根据客户端的IP地址进行DNS
PTR反向查询,查询出客户端的host name,然后根据查询出的客...
分类:
其他好文 时间:
2014-05-09 05:45:28
阅读次数:
288
1.把一个 const 对象的地址赋给一个普通的、非 const
对象的指针也会导致编译时的错误:const double pi = 3.14;double *ptr = π // error: ptr is a
plain pointerconst double *cptr = π /...
分类:
编程语言 时间:
2014-05-09 05:39:43
阅读次数:
404
CONTAINING_RECORD 这样的一个宏,我看了它的定义,如下:#define
CONTAINING_RECORD(address, type, field) ((type *)( (PCHAR)(address) -
(ULONG_PTR)(&((type*)0)->field)))cla...
分类:
其他好文 时间:
2014-05-09 04:21:01
阅读次数:
330
ptr_fun是将一个普通的函数适配成一个functor,添加上argument
type和result type等类型,
其实现如下(例子里面是binary_function,unary_function同理):C++代码templateinlinepointer_to_binary_functi...
分类:
其他好文 时间:
2014-05-07 20:33:56
阅读次数:
393