Loading

【Linux系统编程】libevent库event_base结构体

libevent库event_base结构体

event_base结构体是event事件处理框架的基础,每个event_base结构体持有一个事件集合,同时通过调用操作系统提供的事件处理接口(如select)对事件进行监控和处理。

基本函数

event_base_new()

函数原型

#include <event.h>
#include <event2/event.h>
struct event_base* event_base_new(void);

函数说明
创建并返回一个event_base结构体。

函数返回值

  • 成功返回event_base结构体指针。
  • 失败返回nullptr。

event_base_free()

函数原型

#include <event.h>
#include <event2/event.h>
void event_base_free(struct event_base *);

函数说明
释放event_base的内存空间,该函数不会关闭任何文件描述符,也不会释放任何作为回调函数参数传递给event_new函数的内存空间。

函数参数

  • struct event_base *:指向需要释放的event_base结构体的指针。

event_reinit()

函数原型

#include <event.h>
#include <event2/event.h>
int event_reinit(struct event_base *base);

函数说明
重新初始化event_base结构体,在多进程环境中,子进程要使用父进程创建的event_base结构体,需要重新初始化。

函数参数

  • struct event_base *:指向需要重新初始化的event_base结构体的指针。

函数返回值

  • 成功返回0。
  • 失败返回-1。

event_get_supported_methods()

函数原型

#include <event.h>
#include <event2/event.h>
const char** event_get_supported_methods(void);

函数说明
获取当前环境中,libevent支持的事件通知机制。

函数返回值

  • 当前环境中,libevent支持的事件通知机制C字符串数组。

event_base_get_method()

函数原型

#include <event.h>
#include <event2/event.h>
const char* event_base_get_method(const struct event_base *);

函数说明
获取当前event_base结构体中使用的事件通知机制。

函数参数

  • const struct event_base *:指向需要获取事件通知机制的event_base结构体的指针。

函数返回值

  • event_base使用的事件通知机制的字符串。

在CentOS 7中查看libevent支持的方法

源码

#include <iostream>
  2 #include <cstdlib>
  3 #include <cstring>
  4 #include <cstdio>
  5 #include <event2/event.h>
  6 using namespace std;
  7 
  8 int main(int argc, char *argv[]) {
  9     const char ** sup_meth = event_get_supported_methods();
 10     for (int i = 0; sup_meth[i] != nullptr; i++) {
 11         printf("%s\t", sup_meth[i]);
 12     }
 13     printf("\n");
 14 
 15     event_base *eb = event_base_new();
 16     printf("%s\n", event_base_get_method(eb));
 17     event_base_free(eb);
 18     return 0;
 19 }

运行结果
image

posted @ 2024-04-10 02:07  杨谖之  阅读(19)  评论(0编辑  收藏  举报