- 创建event_base:初始化libevent库,创建一个event_base对象用于管理事件循环。
#includeint main() { struct event_base *base = event_base_new(); // Do something with the event base event_base_free(base); return 0; }
- 创建事件:使用event_new函数创建一个新的事件,并设置事件的回调函数和事件类型。
#include
void event_callback(evutil_socket_t fd, short events, void *arg) {
// Event callback function
}
int main() {
struct event_base *base = event_base_new();
struct event *ev = event_new(base, fd, EV_READ | EV_PERSIST, event_callback, NULL);
event_add(ev, NULL);
event_base_dispatch(base);
event_base_free(base);
return 0;
}
- 定时事件:使用event_new创建一个定时事件,并设置事件的超时时间。
#include
void timer_callback(evutil_socket_t fd, short events, void *arg) {
// Timer callback function
}
int main() {
struct event_base *base = event_base_new();
struct timeval tv = {1, 0};
struct event *ev = evtimer_new(base, timer_callback, NULL);
evtimer_add(ev, &tv);
event_base_dispatch(base);
event_base_free(base);
return 0;
}
这些示例展示了libevent库的基本用法,可以根据具体的需求进一步扩展和修改。