本文主要是介绍Libevent编程-捕获 signal,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Libevent 是一个轻量级的开源高性能网络库,事件驱动(event-driven), 实现基于 Reactor 模式,网上学习资料众多,这里分享一下关于 signal 的处理。
首先给出 libevent 对 signal 的处理宏定义:
evsignal_* macrosAliases for working with signal events#define evsignal_add(ev, tv) event_add((ev), (tv)) #define evsignal_assign(ev, b, x, cb, arg) \ event_assign((ev), (b), (x), EV_SIGNAL|EV_PERSIST, cb, (arg))#define evsignal_new(b, x, cb, arg)\event_new((b), (x), EV_SIGNAL|EV_PERSIST, (cb), (arg))#define evsignal_del(ev) event_del(ev)#define evsignal_pending(ev, tv) event_pending((ev), EV_SIGNAL, (tv))#define evsignal_initialized(ev) event_initialized(ev)
signal 事件的处理函数即是普通 event 事件的处理函数别无二致,唯一不同之处在于在文件描述符,signal 事件该参数的意义是 signal no,我们可以用 kill -l 命令查看系统的 signal table:
这篇关于Libevent编程-捕获 signal的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!