Libev,为什么在 EVloop 中接收事件的编号是 3?

libev, why recv a event's number is 3 in evloop?

本文关键字:事件 编号 为什么 EVloop Libev      更新时间:2023-10-16
void callback(struct ev_loop *loop, ev_io *w, int events)
{
if (EV_READ == events) {
...
}
else if (EV_WRITE == events) {
...
}
else {
here recv event's number is 3
}
}

在libev源代码"ev.h"中,我没有找到宏来定义数字0x03

EV_READ     =            0x01, /* ev_io detected read will not block */
EV_WRITE    =            0x02, /* ev_io detected write will not block */

它有点掩码。 3 表示可读和可写条件都可供处理。

尝试类似的东西

if (events & EV_READ) {  // something is readable
...
}
if (events & EV_WRITE) { // something is writable
...
}