Libevent编程-捕获 signal

本文介绍了如何在Libevent中处理signal事件,通过示例展示了如何创建信号处理函数,注册信号事件,并响应SIGINT信号。同时,讨论了如何通过kill命令向特定线程发送信号。
摘要由CSDN通过智能技术生成

Libevent 是一个轻量级的开源高性能网络库,事件驱动(event-driven), 实现基于 Reactor 模式,网上学习资料众多,这里分享一下关于 signal 的处理。
首先给出 libevent 对 signal 的处理宏定义:

   evsignal_* macros
   Aliases 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:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值