Я изменяю приложение, чтобы заменить его использование select () на kqueue. select () позволяет опросить об исключительных условиях:
int select(int nfds,
fd_set *restrict readfds,
fd_set *restrict writefds,
fd_set *restrict errorfds, <---- this thing here
struct timeval *restrict timeout
);
После прочтения документации по kqueue, похоже, что сделать это невозможно. Там есть EVFILT_READ
и EVFILT_WRITE
, но нет ничего похожего на EVFILT_ERROR
/ EVFILT_EXCEPTIONAL
. Можно ли провести опрос на исключительные условия, и если да, то как?