Есть ли способ, чтобы узнать 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
- есть ли способ узнать более подробную информацию об ошибке в дескрипторе файла?