libev学习:libev 安装与简单使用

本文详细介绍了libev事件库在Ubuntu环境下的安装步骤,包括下载、解压、配置、编译及安装过程。同时提供了libev库的简单使用示例,包括io事件监听器和定时事件监听器的创建、事件的绑定与触发,以及如何通过makefile进行编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

下载地址

环境:ubuntu

tar -zxf libev-4.25.tar.gz
cd libev-4.25
./configure
make
make install

如果权限不够,在前面加sudo即可

简单使用

代码目录:

.
|-- libev-4.25
|-- makefile
`-- test.cpp

test.cpp:

#include <ev.h>                                                       
#include <stdio.h>

//ev_io是io事件监听器,ev_timer为定时事件监听器
ev_io stdin_watcher;
ev_timer timeout_watcher;

// ev_io事件的回调函数
static void stdin_cb (EV_P_ ev_io *w, int revents)
{
    puts ("stdin ready");
    ev_io_stop (EV_A_ w);
    ev_break (EV_A_ EVBREAK_ALL);
}

// 定时事件的回调函数
static void timeout_cb (EV_P_ ev_timer *w, int revents)
{
    puts ("timeout");
    ev_break (EV_A_ EVBREAK_ONE);
}

int main (void)
{
    //定义event loop
    struct ev_loop *loop = EV_DEFAULT;

    // 将标准输入的可读事件和io回调函数绑定到io事件监听器
    ev_io_init (&stdin_watcher, stdin_cb,/*STDIN_FILENO*/ 0, EV_READ);
    ev_io_start (loop, &stdin_watcher);

    // 将超时时间和时间回调函数绑定到定时事件监听器 间隔时间,是否重复
    ev_timer_init (&timeout_watcher, timeout_cb, 5.5,0.);
    ev_timer_start (loop, &timeout_watcher);

    ev_run (loop, 0);

    return 0;
}

makefile:

target=main

$(target):test.cpp
  g++ -o $@ $^ -L/usr/local/lib/ -lev

clean:
  rm -rf $(target) *.o

编译为可执行文件后并执行,等待5.5s或者回车都会使程序结束。

 

参考:

libev的使用——结合Socket编程

libev库的用法

Socket网络编程--Libev库学习(1)

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值