Jak uzyskać errno, gdy epoll_wait zwraca EPOLLERR?
Czy istnieje sposób, aby dowiedzieć sięerrno
gdyepoll_wait
zwracaEPOLLERR
dla konkretnego fd?
Czy są jakieś dalsze informacje na temat charakteru błędu?
Edytować:
Dodanie dodatkowych informacji, aby zapobiec dwuznaczności
epoll_wait
czeka na kilka deskryptorów plików. Kiedy zadzwoniszepoll_wait
przekazujesz mu tablicęepoll_event
Struktury:
struct epoll_event {
uint32_t events; /* Epoll events */
epoll_data_t data; /* User data variable */
};
Theepoll_data_t
struktura ma takie same szczegóły, jak te, których używałeśepoll_ctl
dodać deskryptor pliku do epoll:
typedef union epoll_data {
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
Szukam tego, co się dzieje, gdy wystąpi błąd na jednym z deskryptorów plików, na który czeka epoll.
to znaczy:(epoll_event.events & EPOLLERR) == 1
- czy istnieje sposób, aby dowiedzieć się więcej szczegółów na temat błędu deskryptora pliku?