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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage