105-Linux_Libevent库的安装与使用

这篇具有很好参考价值的文章主要介绍了105-Linux_Libevent库的安装与使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.Libevent 概述

Libevent 是开源社区的一款高性能的 I/O 框架库,使用 Libevent 的著名案例有:高性能的分布式内存对象缓存软件 memcached,Google 浏览器 Chromium 的 Linux 版本。

1.Libevent的特点

  • 跨平台支持。 Libevent 支持 Linux、Unix 和 Windows。

  • 统一事件源。Libevent 对 I/O 事件、信号和定时事件提供统一的处理。

  • 线程安全。Libevent 使用 libevent_pthreads 库来提供线程安全支持。

  • 基于 Reactor 模式的实现

2.Libevent使用模型

105-Linux_Libevent库的安装与使用

3.Libevent 支持的事件类型

105-Linux_Libevent库的安装与使用

二.Libevent的安装

Libevent 使用源码安装的方式,源码下载地址:http://libevent.org/
下载下来后,将 Libevent 的压缩包拷贝到 Linux 系统中,然后按照以下步骤执行:
1、 打开终端,并且进入到 Libevent 所在位置
2、 切换到 root 用户
3、 利用 tar 命令解压 Libevent 压缩包
4、 进入到解压开的目录中
5、 执行命令: ./configuer --prefix=/usr
6、 使用 make 命令完成编译
7、 使用 make install 命令完成安装
8、 使用 ls -al /usr/lib | grep libevent 测试安装是否成功

三.Libevent简单使用实例

编译时要加上Libevent库
gcc -o xxxxxx xxxxxxx -levent文章来源地址https://www.toymoban.com/news/detail-432184.html

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<sys/time.h>
#include<signal.h>
#include<event.h>
#include<assert.h>

void sig_cb(int fd,short ev,void* arg);
void time_cb(int fd,short ev,void *arg);
int main()
{
    struct event_base * base=event_init();//定义实例
    assert(base!=NULL);

    struct event * sig_ev=evsignal_new(base,SIGINT,sig_cb,NULL);//event_new()
    event_add(sig_ev,NULL);//将事件添加到libevent

    struct timeval tv={5,0};
    struct event * time_ev=evtimer_new(base,time_cb,NULL);//event_new()
    event_add(time_ev,&tv);

    event_base_dispatch(base);//事件循环--死循环
    event_free(sig_ev);
    event_free(time_ev);
    event_base_free(base);
    exit(0);
}

void sig_cb(int fd,short ev,void* arg)
{
    printf("sig=%d\n",fd);//2
}
void time_cb(int fd,short ev,void *arg)
{
    printf("time out\n");
}

到了这里,关于105-Linux_Libevent库的安装与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 静态库的制作与使用

    1、 什么是库 库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供使用者可以直接拿来用的变量、函数或类。 库是一种特殊的程序,编写库的程序和编写一般的程序区别不大,只是库不能单独运行。 库文件有两种,静态库和动态库(共享库),区

    2023年04月24日
    浏览(35)
  • 【linux】动静态库的使用与制作

    本章节是基础IO的的最后一个话题!! 我们有没有用过库? 答案是一定的,我们在使用printf,stl容器…等等函数都是在使用库, 不然的话我们在使用这些东西时,明明你自己没有实现,程序缺依然能执行呢? 都是因为库的存在! 既然知道了库的存在,那我们肯定要见一见。

    2024年04月27日
    浏览(40)
  • 【Linux】动静态库的制作与使用

    静态库的名称格式为: libxxx.a   注意 xxx 才是静态库的真正名字 。 动态库的名称格式为: libxxx.so   注意 xxx 才是动态库的真正名字 。 注意动态库中生成 .o 文件时gcc 要带选项 -fPIC ,表示生成位置无关码 。 注意: 不论是静态库还是动态库,都不可以有 main 函数 。 我们先

    2024年02月04日
    浏览(41)
  • httplib库的安装以及使用

    目录 安装httplib库 认识httplib库 httplib请求类  httplib响应类  httplib中的Server类        httplib的client类 httplib库搭建简单的服务器 httplib库搭建简单的客户端 1.进入github,搜索httplib库  2.下载库 3.下载完毕将库的压缩包传输到linux系统下  4.解压库 unzip cpp-httplib-master.zip httplib 库,

    2023年04月14日
    浏览(38)
  • Linux 动静态库的制作,使用和加载

    关于动静态库的初步理解,我们在Linux基础环境开发工具的使用(二):动静态库的理解,make,makefile 这篇博客中进行了详细介绍,大家可以去看一下 今天我们直接介绍动静态库的制作和使用,分别站在库的制作者和使用者的角度来分析 而我们要使用的文件就是我们在 Linux文件系列: 深

    2024年04月15日
    浏览(63)
  • libevent介绍和使用

    libevent 是一个开源的事件通知库,它提供了一个跨平台的抽象接口,libevnet处理的事件包括网络IO事件,定时事件以及信号事件。它可以在不同的操作系统上使用,包括Linux、Windows和Mac OS X等。libevent 的主要目的是提供高效的事件通知机制,用户无需关注平台检测处理事件的机

    2024年02月04日
    浏览(43)
  • Linux中静态库和动态库的使用

    介绍: 库是一个二进制文件,包含的代码可被程序调用 标准C库、数学库、线程库… 库有源码,可下载后编译;也可以直接安装二进制包 位置一般放在:/lib /usr/lib 库的知识 库是事先编译好的,可以复用的代码 在os上运行的程序基本上都要使用库,使用库可以提高开发效率

    2024年01月25日
    浏览(38)
  • Linux 网络编程学习笔记——十二、高性能 I/O 框架库 Libevent

    在处理 I/O 事件、信号和定时事件时,需要考虑如下三个问题: 统一事件源:很明显,统一处理这三类事件既能使代码简单易懂,又能避免一些潜在的逻辑错误。 可移植性:不同的操作系统具有不同的 I/O 复用方式,比如 Solaris 的 dev/poll 文件,FreeBSD 的 kqueue 机制,Linux 的

    2023年04月08日
    浏览(57)
  • 【Linux】Linux编译器 gcc 的使用 | 动静态库的初步认识

    👑作者主页:@安 度 因 🏠学习社区:StackFrame 📖专栏链接:Linux

    2024年01月15日
    浏览(39)
  • 【Linux】动静态库的使用与软链接的结合

    库本质就是把一堆(.o)后缀的文件也就是目标文件整合在一起 静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库 在makefile中 1.第三方库的使用,gcc往后必须加上 -l +库名 2.如果系统中只提供静态链接,则gcc对其进行静态链

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包