摘要:
今天粗略的看了下glog的源代码,发现一处是宏的替换应用,特提出来分享。template<class Iter>inline void PrintSequence(std::ostream& out, Iter begin, Iter end) { using ::operator<<; // Output at most 100 elements -- appropriate if used for logging. for (int i = 0; begin != end && i < 100; ++i, ++begin) { if ( 阅读全文
摘要:
今天参考json-c的源码读到一个关于attribute 扩展static void json_object_init(void) __attribute__ ((constructor));static void json_object_fini(void) __attribute__ ((destructor));google到含义如下void main_enter() __attribute__((constructor));//main_enter函数在进入main函数前调用void main_exit() __attribute__((destructor));//main_exit 阅读全文
摘要:
看到好多同学转战到github上,抛弃了googlecode,偶也是个赶潮流的人哪。git 概况Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,作者把他描述为一个“傻瓜式的版本管理系统”,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius和Merb在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。使用GIT系统,不需要像SVN那样搭建一台SVN服务器来存放代码库。git 安装git主要是为Linux而开发的,在L 阅读全文
摘要:
Redis 概况Redis是一款开源的、高性能的键-值存储(key-value store)。它常被称作是一款数据结构服务器(data structure server)。Redis的键值可以包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作。例如:对字符串进行附加操作(append);递增哈希中的值;向列表中增加元素;计算集合的交集、并集与差集等。Redis 安装在主页 Redis下载稳定版本,通过wget http://redis.googlecode.com/fi 阅读全文
摘要:
ZeroMQ 汇总所有分析,基于 2.1.0 的代码。建立在 socket 之上的 light-weight message queue。不再需要自己管理 tcp 分包。简单、实用。来自 iMatix 的一个库,iMatix 主要面向金融行业。(业务逻辑决定设计)http://www.zeromq.org/最详细的使用指南:http://zguide.zeromq.org/chapter:allZeroMQ 的使用: Hello 0MQ, Echo ServerMulti-part Messagesmessaging pattern (1) -- publish/subscribemessag 阅读全文
摘要:
ZeroMQ是一个实现消息通信的项目。从网络通信的角度看,它处于会话层之上,应用层之下,有了它,你甚至不需要自己写一行的socket函数调用就能完成复杂的网络通信工作。ZeroMQ可以在Window和Unix—like上运行,现在将其在Cygwin下运行。首先按照官方给出的安装指导做Make sure that libtool, autoconf, automake are installed.Check whether uuid-dev package, uuid/e2fsprogs RPM or equivalent on your system is installed.Unpack t 阅读全文
摘要:
以前做内存池的时候,google到了 Wolf Software的Mempool Library,下载地址如下http://www.wolf-software.com/downloads/system-libraries/memory/mempool/最近抽时间将源码看了下,做了个图。这份实现还是很传统的,很好理解。有三个重要的结构顶端的mempool,处于中间层的mempool_table,以及最底层与实际分配相关的mempool_entry。下图是它们之间的关系1.mempool中的smallest_block和largest_block为2^n。在mempool中管理的mempool_t 阅读全文
摘要:
整理以前的代码,发现一个取模的测试用例,针对正负进行了讨论。#include <stdio.h>int main(int argc, char **argv){ int x,y; printf("Input X >0 and Y>0 \n"); scanf("%d%d",&x,&y); printf("%d%%%d=%d , %d/%d=%d\n",x,y,x%y,x,y,x/y); y= -y; printf("%d%%%d=%d , %d/%d=%d\n",x,y,x%y 阅读全文
摘要:
参考http://www.wikihow.com/Remove-the-Popup-Ads-in-Avira-AntivirWindows 7 or Windows Vista Business/Ultimate1 Open the control panel through Start > Control Panel.2 Go to Administrative Tools > Local security policy.3 Click on Software Restriction Policy > Action > Create new restriction p 阅读全文
摘要:
借鉴ucos消息队列中的实现,对内存池只提供信息的管理头部,由用户管理内存的分配与释放。借用了STL中的管理思路typedef union object_t{ union object_t *next; //下一个对象 char data[1];}object_t;注意其为union类型,next和data复用typedef struct ares_block{ size_t object_size; //单个对象的大小 size_t block_size; //占用的空间总数 size_t count; ... 阅读全文