Wie erhalte ich eine Fehlermeldung, wenn epoll_wait EPOLLERR zurückgibt?
Gibt es eine Möglichkeit, das herauszufinden?errno
wannepoll_wait
kehrt zurückEPOLLERR
für einen bestimmten fd?
Gibt es weitere Informationen zur Art des Fehlers?
Bearbeiten:
Hinzufügen weiterer Informationen, um Mehrdeutigkeiten zu vermeiden
epoll_wait
wartet auf eine Reihe von Dateideskriptoren. Wenn du anrufstepoll_wait
Sie übergeben es eine Reihe vonepoll_event
Strukturen:
struct epoll_event {
uint32_t events; /* Epoll events */
epoll_data_t data; /* User data variable */
};
Dasepoll_data_t
Die Struktur hat die gleichen Details wie die, mit der Sie gearbeitet habenepoll_ctl
So fügen Sie epoll einen Dateideskriptor hinzu:
typedef union epoll_data {
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
Was ich suche, ist, was passiert, wenn in einem der Dateideskriptoren, auf die epoll wartet, ein Fehler auftritt.
dh:(epoll_event.events & EPOLLERR) == 1
- Gibt es eine Möglichkeit, mehr Details des Fehlers im Dateideskriptor herauszufinden?