libevent 事件(一)---概述

libevent事件是操作的基础单位,涉及文件描述符就绪、超时、信号等多种条件。事件状态包括initialized、pending、active和persistent。创建事件涉及事件状态和类型的宏定义,如示例中创建监听可读事件。libevent还支持处理POSIX信号,通过信号编号进行事件处理。参考libevent官方文档深入理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事件类型

libevent事件的基本操作单位是事件,每个事件代表一组条件的集合,包括:

文件描述符就绪
文件描述符变为就绪(ET模式)
超时事件
发生某信号
用户触发事件


事件状态

initialized:事件初始化,包括描述符,回调,关心的事件等
pending:事件已被添加到event_base中
active:事件发生,具体可表现为描述符可读或者可写,执行用户回调
persistent:执行用户回调后将回到pending状态,否则事件从event_base中移除


创建事件

先看看在源码中对事件状态的和事件类型的宏定义

//event.h
#define EV_TIMEOUT  0x01
#define EV_READ     0x02
#define EV_WRITE    0x04
#define EV_SIGNAL   0x08
#define EV_PERSIST  0x10    /* Persistant event */

代码中使用event_new来创建一个新事件:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值