当前位置: 首页 > news >正文

libevent的各个基本函数的使用

libevent也是为后续服务器与客户端搭建做准备,有利于大家能更容易阅读源码

  • event_new
  • event_free
  • event_debug_unassign
  • event_add
  • event_del
  • event_base_once
  • event_pending
  • event_base_set
  • event_get_events
  • event_get_callback
  • event_get_base
  • event_get_base
  • event_get_base
  • event_get_base

event_new

struct event *event_new(struct event_base *base, evutil_socket_t fd,
short events, event_callback_fn callback,
void *callback_arg);
初始化event事件,后续可以将event放到even_base里
fd对应的句柄你可以理解为linux的open后返回的值
events 事件类型
callback就是回调函数,你可以理解为当触发该信号时要处理的函数
callback_arg 就是回调函数的参数,你就理解为给回调函数传参

event_free

void event_free(struct event *);
回收event_new分配的event

event_debug_unassign

启用调试检测
就是类似于我之前文章写,当遇到逻辑不符合时会打印逻辑不符的位置
如函数assert
使用这个必须要在event创建前

event_add

int event_add(struct event *ev, const struct timeval *timeout);

添加event到event_base事件循环里

event_del

int event_del(struct event *ev);

就是删除调度器里的事件

event_base_once

int event_base_once(struct event_base *base, evutil_socket_t fd,
short events, event_callback_fn callback, void *arg,
const struct timeval *timeout);

就是该事件只执行一次

event_pending

int event_pending(const struct event *ev, short events, struct timeval *tv);
用来判断event_base里该事件是否处理pending状态

event_base_set

int event_base_set(struct event_base *eb, struct event *ev);
就是把event绑定到新的event_base里

event_get_events

short event_get_events(const struct event *ev);
获取event里的监听事件,他是通过|来合并的所以要自己拆分
比如1和2或了之后的二进制是11 2和4或了之后的二进制是110

event_get_callback

event_callback_fn event_get_callback(const struct event *ev);
就是获取event的回调函数

event_get_base

struct event_base *event_get_base(const struct event *ev);
获取event绑定的event_base指针

event_get_base

event_get_base

event_get_base

相关文章:

  • STM32+dht11+rc522+jq8400的简单使用
  • Minecraft盔甲机制详解(1.9之后)
  • 文件的加密与解密学习笔记
  • MIR-2025 | 多模态知识助力机器人导航:从复杂环境到高效路径规划
  • 2025年4月16日华为笔试第三题300分
  • 数据结构与算法-顺序表专题
  • 【裁员感想】
  • 禁用USB接口的电脑管理软件推荐
  • 移植firefly core-1126-jd4官方sdk源码到其他rv1126板卡时 kernel启动中失去响应问题解决
  • 2025年特种设备安全管理 A 证考试全解析
  • 力扣 797. 所有可能的路径
  • 2025宽带避坑指南:百兆、千兆、万兆到底怎么选
  • 对话框类别组件编写
  • 【开源项目】Excel手撕AI算法深入理解(四):注意力机制(Self-Attention、Multi-head Attention)
  • HashMap中put方法的执行流程
  • IOS微信小程序无法显示背景图片
  • 音频识别优化(FFT)
  • 认识Vue
  • Java锁的分类与解析
  • QT6 源(34):随机数生成器类 QRandomGenerator 的源码阅读
  • 扎克伯格怕“错过风口”?Meta AI数字伴侣被允许与未成年人讨论不当话题
  • 北美票房|《罪人》遭媒体唱衰,好莱坞业内人士集体反击
  • 黄永年:说狄仁杰的奏毁淫祠
  • 一季度全国城镇新增就业308万人
  • 伊朗最大港口爆炸:26公里外都能听到,超七百人受伤,原因指向化学品储存
  • 广西给出最后期限:6月30日之前主动交代问题可从宽处理