libevent signal 信号事件

来源:互联网 发布:淘宝网店名字大全女装 编辑:程序博客网 时间:2024/04/29 14:10

关于libevent信号事件(SIGINT信号)的一个小列子

<span style="font-family:Microsoft YaHei;font-size:14px;">#include <iostream>#include <event2/event.h>#include <event2/event-config.h>#include <stdio.h>#include <signal.h>using namespace std;struct event_base *base;int called = 0;void signal_cb(evutil_socket_t fd,short event,void *arg){struct event *signal = (struct event *)arg;printf("%s : got signal %d\n",__func__,event_get_signal(signal));if(called >= 2)event_del(signal); //删除信号事件called++;//event_base_loopbreak(base);}int main(int argc, char **argv){base = event_base_new();if(base == NULL){printf("create event base failed \n");return -1;}struct event *signal_int = evsignal_new(base,SIGINT,signal_cb,event_self_cbarg()); //if(!signal_int || event_add(signal_int,NULL) < 0){printf("create or add signal_int failed \n");return -1;}event_base_dispatch(base);event_base_free(base);printf("after event_base_dispatch\n");return 0;}</span>


参考:https://github.com/libevent/libevent/blob/master/sample/signal-test.c




                                             
0 0
原创粉丝点击