Как получить ошибку, когда epoll_wait возвращает EPOLLERR?
Есть ли способ узнатьerrno
когдаepoll_wait
возвращаетсяEPOLLERR
для конкретного фд?
Есть ли какая-либо дополнительная информация о природе ошибки?
Редактировать:
Добавление дополнительной информации для предотвращения двусмысленности
epoll_wait
ждет нескольких дескрипторов файлов. Когда вы звонитеepoll_wait
Вы передаете это массивepoll_event
структуры:
struct epoll_event {
uint32_t events; /* Epoll events */
epoll_data_t data; /* User data variable */
};
epoll_data_t
структура имеет те же детали, что и тот, который вы использовали сepoll_ctl
добавить дескриптор файла в epoll:
typedef union epoll_data {
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
Что я ищу, так это то, что происходит, когда возникает ошибка в одном из файловых дескрипторов, которые ожидает epoll.
то есть:(epoll_event.events & EPOLLERR) == 1
- есть ли способ узнать более подробную информацию об ошибке в дескрипторе файла?