2019独角兽企业重金招聘Python工程师标准>>>

英文部分引用:http://www.wangafu.net/~nickm/libevent-book/Ref7_evbuffer.html

Moving data from one evbuffer to anotherFor efficiency, Libevent has optimized functions for moving data from one evbuffer to another.

Interface
int evbuffer_add_buffer(struct evbuffer *dst, struct evbuffer *src);
int evbuffer_remove_buffer(struct evbuffer *src, struct evbuffer *dst,
    size_t datlen);

The evbuffer_add_buffer() function moves all data from src to the end of dst. It returns 0 on success, -1 on failure.
The evbuffer_remove_buffer() function moves exactly datlen bytes from src to the end of dst, copying as little as possible. If there are fewer than datlen bytes to move, it moves all the bytes. It returns the number of bytes moved.

We introduced evbuffer_add_buffer() in Libevent 0.8; evbuffer_remove_buffer() was new in Libevent 2.0.1-alpha.

Adding data to the front of an evbufferInterface
int evbuffer_prepend(struct evbuffer *buf, constvoid *data, size_t size);
int evbuffer_prepend_buffer(struct evbuffer *dst, struct evbuffer* src);
These functions behave as evbuffer_add() and evbuffer_add_buffer() respectively, except that they move data to the front of the destination buffer.

These functions should be used with caution, and never on an evbuffer shared with a bufferevent. They were new in Libevent 2.0.1-alpha.

(使用这组函数需谨慎,并且永远不要在和bufferevent关联的evbuffer上使用)

bufferevent_write
bufferevent_write_buffer 只是对evbuffer的一个包装
如果上述两个函数不能满足需求,那么取bufferevent_get_output, bufferevent_get_input可以取出关联的evbuffer,然后可以evbuffer调用相关的方法

转载于:https://my.oschina.net/dourgulf/blog/54425

libevent备忘相关推荐

  1. vim的一些快捷键,备忘

    vim的一些快捷键,备忘 快捷键                                            作用 ctrl+g                                ...

  2. 资源 | AI、神经网络、机器学习、深度学习以及大数据学习备忘单

    向AI转型的程序员都关注了这个号☝☝☝ 以下是关于神经网络.机器学习.深度学习以及大数据学习的备忘单,其中部分内容和此前发布的<资源 | 值得收藏的 27 个机器学习的小抄>有所重复,大家 ...

  3. 机器学习项目的备忘清单!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Harshit Tyagi,编译:机器之心 机器学习项目中含有众多 ...

  4. 备忘:C语言void *

    由于研究一段代码的时候,看到了 void *.故此进行了学习. 看了 http://www.doc88.com/p-894907672962.html  的说明,感觉写得太好了,已无话可说. 故此备忘 ...

  5. [译] Kotlin 标准方法备忘

    原文地址:Kotlin Standard Functions cheat-sheet 原文作者:Jose Alcérreca 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/go ...

  6. Nancy之结合TinyFox调试备忘

    原文:Nancy之结合TinyFox调试备忘 最近把一个小项目的数据库换成MongoDB,同时用了MongoRepository 这个开源组件来对数据进行操作. 通过NuGet安装之后,它会自动在we ...

  7. CSP浏览器安全策略备忘

    挺久之前过了一遍CSP的安全策略,很多人把它喻为XSS攻击的终结者,因为这种策略不再像传统只靠各种正则和特征匹配来识别跨站攻击Payload,而是直接从协议层把一些存在安全隐患的用法默认给干掉了,把同 ...

  8. Cheat—— 给Linux初学者和管理员一个终极命令行备忘单

    当你不确定你所运行的命令,尤其是那些使用了许多选项的复杂命令时,你会怎么做?在这种情况下,我们使用man pages来获取帮助.还有一些其它的选择可能包括像'help','whereis'和'what ...

  9. 简单备忘一下Linux下的wget和curl如何使用http proxy

    简单备忘一下Linux下的wget和curl如何使用http proxy wget -e "http_proxy=porxyhost:port" www.baidu.com cur ...

最新文章

  1. 分布式事物解决方案-TCC
  2. iOS10 UI教程视图调试
  3. PHP的转义函数 htmlspecialchars、strip_tags、addslashes解释
  4. python和c++哪个好学-C++和Python哪一个更好?
  5. Yii2 的小贴士用法
  6. 【DIY】玩转VFD荧光屏,自制VFD时钟全资料(原理图+源码+PCB)
  7. k8s 资源文件基础练习
  8. MapInfo之格式说明(转载)
  9. 【C语言学习】国嵌21__指针基础
  10. mysql设置字段为空字符串_mysql数据类型字段插入空字符串自动填充为0报错
  11. java与java ee_计划Java EE 7批处理作业
  12. Google认证的SketchUp模型网站
  13. Hadoop简介与分布式安装
  14. 《统计学习方法》—— 感知机原理、推导以及python3代码实现(一)
  15. 机器视觉常用算法C语言实现
  16. 大话uboot 移植
  17. 计算机网络系统与分布式系统之间的区别
  18. 前段时间的学习小结——体脂率的计算
  19. 《英雄无敌3》的一个独立的扩展版-英雄无敌3死亡阴影下载
  20. python 定义一个迭代器去生成偶数数列

热门文章

  1. kill 进程_05516.1普通用户配置kill CDH集群进程权限
  2. git clone --recursive慢_Git使用之submodule
  3. count(*)效率提高_2020年最新整理财务统计函数,学会让你财务统计效率提升95%以上...
  4. jspdf 分页_使用html2canvas跟jspdf导出导出PDF文件
  5. matlab错误打印,MATLAB中数据输出格式出现错误?
  6. 12.混淆——数字音频采样,混淆,反混淆,脉冲序列_2
  7. bzoj4517 [Sdoi2016]排列计数 组合数+错排
  8. 2017.10.10 Perm 排列计数 失败总结
  9. 2017.9.11 海拔 思考记录
  10. 2017.4.19 细胞分裂 思考记录