我正在尝试学习 libevent 以在未来的项目中使用。我正在尝试创建一个事件,每次超时时调用它的回调函数。回调函数所做的就是将“timeout_cb called”打印到标准输出。
我的回调函数代码是:
static void timeout_cb(evutil_socket_t fd, short what, void *arg) {
printf("timeout_cb called");
}
我的活动代码是:
struct event *toEvent; // time out event do this every so often
toEvent = event_new(base, -1, EV_TIMEOUT, timeout_cb, NULL); // base is the event base
event_add(toEvent, &five_seconds); //five_seconds is a timeval struct with 5 seconds
该程序将编译并运行,没有错误或警告,但它不会打印出回调函数中的短语。我在其他回调类型中使用了类似的 printf 语句来验证它们是否被调用,并且在函数内部到达了各种行,但这没有任何作用。我等了 30 秒左右,但仍然没有打印到屏幕上。纯超时事件我做错了什么。