读书人

哪位朋友能有c语言的mbuf管理的源程序

发布时间: 2012-02-17 17:50:41 作者: rapoo

哪位朋友能有c语言的mbuf管理的源程序?非常感谢!
做一个项目,用c语言,是通讯方面的,需要先开辟一块大内存,然后有很多后续操作从此获取内存,不再找操作系统要(类似mbuf),不知哪位高手那里有这方面的源代码?万分感谢!或者能告诉我从哪里能下载也可以。

[解决办法]
参考类unix上的mpool实现吧,虽然它用的是共享内容,但是有几分类似
[解决办法]
[code=C/C++][/code]
struct mpool_blob
{
size_t size;
unsigned char *base; /* Base of allocated section */
unsigned char *ptr; /* End of allocated section */
struct mpool_blob *next; /* Next Pool */
};
[code=C/C++][/code]

http://www.google.cn/codesearch?hl=zh-CN&q=+mpool+show:swpCyvTQk_Y:zxOYiBXOsp8:YesOyO-lfFU&sa=N&cd=1&ct=rc&cs_p=http://www.angstrom-distribution.org/unstable/sources/cyrus-imapd-2.2.12.tar.gz&cs_f=cyrus-imapd-2.2.12/lib/mpool.c#first

有全面的解决方案。写的很标准
[解决办法]
你的参数p可以携带该内存单元的管理信息的!你可以判断该内存单元的下一个内存单元是否是可以满足使用的,如果是就从下筷分配,如果不是,则新分配一块,将原来的数据复制进去.

哪些情况需要relloc?在设计该函数的时候可以将处理的数据void * p整成struct PARAM{ struct PARAM * next, void * p; }; 这样的形式,直接将需要增加的数据(前面增加头或者后面增加尾)组成这样的结构也很方便.我原来处理一些比较复杂的协议的时候就是这样干的

读书人网 >C语言

热点推荐