wangqi0021
不定长buffer
在内核态如果需要一个不定长的buffer时候,大家一般怎么实现?全局buffer。用来存储skb。skb的个数是不定的
struct sk_buff *skb1
skb=kmalloc(sizeof(sk_buff));
memcpy(skb, data, sizeof(skb));
有没有什么技术可以实现当skb2到来时候,把skb1的空间扩大 再把skb2放进去 依此类推
[[i] 本帖最后由 wangqi0021 于 2008-6-27 14:13 编辑 [/i]]
wangqi0021
[quote]原帖由 [i]net_robber[/i] 于 2008-6-27 14:45 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8686418&ptid=1182032][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
realloc,用户态 [/quote]
可是我要在内核态来用啊。如果分配的地址不是连续的,指针相加时候会不会出问题?
flw2
[quote]原帖由 [i]wangqi0021[/i] 于 2008-6-27 14:04 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8685949&ptid=1182032][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
在内核态如果需要一个不定长的buffer时候,大家一般怎么实现?全局buffer。用来存储skb。skb的个数是不定的
struct sk_buff *skb1
skb=kmalloc(sizeof(sk_buff));
memcpy(skb, data, sizeof(skb)) ... [/quote]
skb你觉得是什么
合起来又是什么意思,不会是说ip重组吧
wangqi0021
[quote]原帖由 [i]flw2[/i] 于 2008-6-27 23:07 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8689816&ptid=1182032][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
skb你觉得是什么
合起来又是什么意思,不会是说ip重组吧 [/quote]
因为我要解析http的post和get 但是可能一个post不能把数据传完,会分成两个post,
就是说可能会这样
post1: nam
post2: e
我要解析name就要有个buffer把post1的包和post2 的包连起来然后再解析,这样就需要一个buffer。把收到的skb暂时存在一个地方,等用户发完一个完整的post之后再一次性解析