我 们可以从sample的文件夹里面找到以下文件代码:
int called = 0;
static void
signal_cb(int fd, short event, void *arg)
{
struct event *signal = arg;
printf("%s: got signal %d\n", __func__, EVENT_SIGNAL(signal));
if (called >= 2)
event_del(signal);
called++;
}
int
main (int argc, char **argv)
{
struct event signal_int;
/* Initalize the event library */
event_init();
/* Initalize one event */
event_set(&signal_int, SIGINT, EV_SIGNAL|EV_PERSIST, signal_cb,
&signal_int);
event_add(&signal_int, NULL);
event_dispatch();
return (0);
}
第一步:event_init()实际上是相当于调用了event_base_new()创建了一个event_base对象
第二步:event_set()设置event(signal_int)的成员
第三步:event_add()相当于注册事件吧
第四步:循环
接下来我们来整理一下程序的运行过程,不断深入。
首先是event_init():
event_set()就是单纯的设置成员而已。
event_add():
event_dispatch():
列出了一些主要的函数,接下来的几篇就是对函数的分析了,一句一句~