首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libevent 2.0.19 -奇怪的evbuffer_copyout最终简单工具

libevent 2.0.19 -奇怪的evbuffer_copyout最终简单工具
EN

Stack Overflow用户
提问于 2012-08-15 22:40:24
回答 1查看 213关注 0票数 0

我正在使用libevent做简单的POST http服务器,但我发现了奇怪的问题- evbuffer_copyout写到*数据发送的数据有开销(每次都会改变)。正如你在代码中看到的,我是通过剪切不必要的符号来修复的,但它看起来不像是正确的解决方案。下面是我收到的:

下面是回调的代码:

代码语言:javascript
复制
size_t len = evbuffer_get_length(evhttp_request_get_input_buffer(r));
struct evbuffer *in_evb = evhttp_request_get_input_buffer(r);

size_t lenBuffer = evbuffer_get_length(in_evb);

char *data = malloc(len);
evbuffer_remove(in_evb, data, len);
NSString *final = [NSString stringWithCString:data encoding:NSASCIIStringEncoding];
NSString *finalFinal = [final substringWithRange:NSMakeRange(0, len)];

NSLog(@"==>lenBuffer:%zu len:%zu data:%@",lenBuffer,len,finalFinal);
evhttp_add_header(evhttp_request_get_output_headers(r),
                  "Content-Type", "text/html");
evhttp_send_reply(r, 200, "OK", in_evb);
free(data);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-15 22:59:26

当你通过malloc分配内存时,它充满了一些垃圾。你用有用的数据填充这个内存,但它可能不包含字符串终止符'\0‘,所以,调试器显示了从buffer中获得的数据,后面跟着一些垃圾。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11971392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档