c - libevent 2.0.19 - 奇怪的 evbuffer_copyout 最终 simbols

标签 c cocoa libevent

我正在使用 libevent 做简单的 POST http 服务器,但我发现奇怪的问题 - evbuffer_copyout 写入 *data 发送的数据有开销(每次都会更改)。 正如您在代码中看到的那样,我通过删除不必要的符号来进行修复,但它看起来不像正确的解决方案。我在这里收到: enter image description here

下面是回调代码:

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);

最佳答案

当你通过malloc分配内存时,它填充了一些垃圾。 您用有用的数据填充此内存,但它可能不包含字符串终止符“\0” 因此,调试器会向您显示从缓冲区获取的数据,其中包含一些垃圾。

关于c - libevent 2.0.19 - 奇怪的 evbuffer_copyout 最终 simbols,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971392/

相关文章:

objective-c - XCode/Cocoa Objective-C - 几个问题

sqlite - 在Core Data中,是否可以创建一个没有索引的表,然后在所有插入完成后添加索引?

c - 在同一套接字中使用 libevent 处理 HTTP 和 HTTPS 请求

http - libevent 支持 HTTP 重定向

c - 在循环中使用 scanf 动态读取 C 中的字符

c - 如何从 C 获取 Linux 中当前文件 (pwd) 的路径?

c 在 float 中用逗号替换点

在 shell 中自定义完成

cocoa - NSStatusItem "kCG..."错误

c++ - 如何将 libusb 与 libevent 一起使用?