libevent 安装教程

发布时间:2024-05-22 22:49:50 作者:yexindonglai@163.com 阅读(475)

安装

从源码安装libevent

教程来源: https://blog.csdn.net/yueni_zhao/article/details/131455743

1、下载libevent源码包

  1. # 下载到 root 目录
  2. cd /root
  3. wget --no-check-certificate https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz

2、解压 && 安装 && 编码

  1. # 解压
  2. cd /root
  3. tar -zvxf libevent-2.1.12-stable.tar.gz
  4. # 生成 makefile 文件
  5. cd /root/libevent-2.1.12-stable/
  6. # 这一步是用来生成编译时用的makefile文件,其中,--prefix用来指定 Libevent 的安装目录。输入make进行编译,成功后再输入make install,然后就可以看到 /usr/local/bin/libevent/ 下面已经有文件生成了:
  7. ./configure --prefix=/usr/local/bin/libevent/
  8. # 编译
  9. cd /root/libevent-2.1.12-stable/
  10. make
  11. # 安装
  12. cd /root/libevent-2.1.12-stable/
  13. make install

然后进入 /usr/local/bin/libevent 目录,就可以看到,已经生成了 bin、include、lib 三个目录

  1. root@PAw9033927:/usr/local/bin/libevent# cd /usr/local/bin/libevent
  2. root@PAw9033927:/usr/local/bin/libevent# ls
  3. bin include lib

教程

libevent-API调用的基本流程
在使用API之前,我们需要了解这三部分:

  • event_base:event_base是一个事件处理的基础结构,它提供了事件循环的基本框架。可以认为它是对select、epoll等函数的封装,以提供跨平台的支持。
  • event:event是一个表示某种事件(套接字的读写事件,定时器事件等)的结构体或对象。它保存了事件触发时,回调函数的指针,供event_base调用。事件能被触发的前提时,事件被注册到event_base中,参与循环检查。
  • event loop:运行event_base,直到没有任何注册事件。
    总的来说:创建event对象后,需要将其添加到一个event_base实例中,以便在事件发生时被正确处理。event_base提供了方法来添加、删除和处理事件。当事件发生时,event_base负责调用与之相关联的回调函数。下面时一个简单的伪代码示例:
  1. // 创建 event_base 实例
  2. struct event_base *base = event_base_new();
  3. // 创建一个读事件
  4. struct event *ev = event_new(base, fd, EV_READ | EV_PERSIST, callback, arg);
  5. // 将事件添加到事件循环中
  6. event_add(ev, NULL);
  7. // 开始事件循环
  8. event_base_dispatch(base);

关键字后端