博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
libevent的hello world程序
阅读量:5843 次
发布时间:2019-06-18

本文共 1799 字,大约阅读时间需要 5 分钟。

照着例子写了一个简单的libevent hello world代码:

#include 
#include
void signal_cb(int fd, short event, void *arg) { event_base *base = (event_base*) arg; timeval delay = {
2, 0}; printf("Caught an interrupt signal, exit in 2 sec...\n"); event_base_loopexit(base, &delay);}void timeout_cb(int fd, short event, void *arg) { printf("timeout\n");}int main() { event_base *base = event_init(); event *signal_event = evsignal_new(base, SIGINT, signal_cb, base); event_add(signal_event, NULL); timeval tv = {
1, 0}; event * timeout_event = evtimer_new(base, timeout_cb, NULL); event_add(timeout_event, &tv); event_base_dispatch(base); event_free(timeout_event); event_free(signal_event); event_base_free(base);}

Makefile的内容:

lhello : lhello.cpp        g++ -o lhello lhello.cpp -levent -L/usr/local/lib -Wl,-rpath=/usr/local/lib

 

2016.09.28 新加的内容

以下是丰富些的Makefile,其中 $@ 代表目标, $^ 代表所有依赖, $< 代表第一个依赖。

CXX=/opt/compiler/gcc-4.8.2/bin/g++INCPATH= \        /home/work/.jumbo/include/DEP_LDFLAGS= \        -L/home/work/.jumbo/lib/DEP_LDLIBS= \        -levent \        -lpthreadTARGET= lhelloall : $(TARGET)$(TARGET) : *.cc        $(CXX) -o $@ $^ -I$(INCPATH) $(DEP_LDFLAGS) $(DEP_LDLIBS).PHONY: all cleanclean :        rm -rf $(TARGET)

 

运行程序:

$ ./lhello timeout^CCaught an interrupt signal, exit in 2 sec...

显示经过1秒,显示timeout,然后Ctrl+C之后,会打印提示,并且等待2秒后退出。

 

注意,在程序中初始化event使用了两个不同的函数,evsignal_new 和 evtimer_new,其实它们都是定义在 include/event2/event.h中的宏,都是利用event_new这个函数,并且加上不同的参数的:

#define evsignal_new(base, signum, callback, arg) \    event_new((base), (signum), EV_SIGNAL|EV_PERSIST, (callback), (arg))#define evtimer_new(base, callback, arg) \    event_new((base), -1, 0, (callback), (arg))

 

转载地址:http://mgmcx.baihongyu.com/

你可能感兴趣的文章
php 用正则替换中文字符一系列问题解决
查看>>
ActiveMQ应用笔记一:基本概念&安装
查看>>
大话数据结构之四(串)
查看>>
加热炉简是新来的整个系统的板
查看>>
Mockito使用注意事项
查看>>
[LeetCode] Palindrome Linked List 回文链表
查看>>
UVA - 825Walking on the Safe Side(dp)
查看>>
评论:人才流失强力折射出现实畸形人才观
查看>>
git服务器gitlab之搭建和使用--灰常好的git服务器【转】
查看>>
基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...
查看>>
虚拟运营商10月或大面积放号 哭穷背后仍有赢家
查看>>
分布式光伏发电建设中的逆变器及其选型
查看>>
UML中关联,组合与聚合等关系的辨析
查看>>
《大数据管理概论》一3.2 大数据存储与管理方法
查看>>
ios的google解析XML框架GDataXML的配置及使用
查看>>
netty-当一个客户端连接到来的时候发生了什么
查看>>
PHP_5.3.20 源码编译安装PHP-FPM
查看>>
在51CTO三年年+了,你也来晒晒
查看>>
js控制图片等比例缩放
查看>>
Java高级开发工程师面试考纲
查看>>