2012年12月16日

可变长结构体

摘要: 经常遇到消息体变长问题,小总结一下。变长结构体的核心思想就是在结构体的最后一个数据结构为一个指针,这个指针指向的是这个结构体的末尾数据,说的有点绕,见下面结构体typedef struct stru_tcp_server_msg{ uint32_ msgLength; //消息体长度 此长度为整个消息长度,包括msgLength本身的长度 uint32_ returnCode; //消息TcpServer返回码 uint8_ zmqMsgBody[0]; //消息体}TS_TCP_SERVER_MSG;见上面zmqMsgBody[0]的定义,看起来很奇怪,其实它的作用... 阅读全文

posted @ 2012-12-16 20:24 dangerman 阅读(6123) 评论(0) 推荐(0) 编辑

Log4cpp 崩溃

摘要: Log4cpp 崩溃昨天测试时出现Log4cpp打印崩溃问题,不是很快出现,多线程情况下快速打印大概3分钟左右会蹦,崩溃位置如下 void OstreamAppender::_append(const LoggingEvent& event) { (*_stream) << _getLayout().format(event); if (!_stream->good()) { // XXX help! help! } } 上面加粗那行的 “oprater<<” 函数崩溃,但这个函数是系统函数,只能看看format()... 阅读全文

posted @ 2012-12-16 20:06 dangerman 阅读(1099) 评论(0) 推荐(0) 编辑

导航