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 }
執行結果