libev, почему recv номер события равен 3 в evloop?

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 */

1

Решение

Это немного маска. 3 указывает, что для обработки доступны как читаемое, так и записываемое условие.

Попробуйте что-то вроде

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]