Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

epoll_wait - Warten auf Ereignisse (epoll-Objekt)

&pagelevel(4)&pagelevel

Definition

#include <sys/epoll.h>
int epoll_wait (int epfd, struct epoll_event *events, int maxevents, int timeout)

Beschreibung

Die Funktion wartet auf Ereignisse, die bei dem epoll-Objekt epfd registriert sind. Der Speicher, auf den events zeigt, ist der Ausgabebereich. Er muss ein Array von Strukturen struct epoll_event sein, und die Anzahl der Array-Elemente muss in maxevents angegeben sein. Der Parameter maxevents muss größer als Null sein. Die Funktion epoll_wait() versorgt zu jedem Dateideskriptor, für den ein Ereignis eingetreten ist, eine Struktur in dem Array. Die Funktion kann Ereignisse für bis zu maxevents Dateideskriptoren liefern.

Der Aufruf wird blockiert, bis eines der folgenden Ereignisse eintritt:

  • ein Dateideskriptor liefert ein Ereignis

  • der Aufruf wird durch ein Signal unterbrochen oder

  • die durch timeout angegebene Zeit ist abgelaufen.

Der Parameter timeout gibt die maximale Wartezeit in Millisekunden an. Hat timeout den Wert -1, wartet epoll_wait() auf unbestimmte Zeit. Wird Null angegeben, kehrt epoll_wait() sofort zurück, auch wenn keine Ereignisse eingetreten sind.

In den Strukturelementen data des Ausgabebereiches werden die Werte geliefert, die bei der Registrierung der Dateideskriptoren mit der Funktion epoll_ctl() angegeben worden waren, während die Strukturelemente events Bit-Felder der eingetretenen Ereignisse enthalten.

Returnwert

Anzahl der Dateideskriptoren, für die ein Ereignis eingetreten ist



bei Erfolg.

 

0

wenn bis zum Ablauf von timeout keine Ereignisse aufgetreten sind.

 

-1

bei Fehler. errno wird gesetzt um den Fehler anzuzeigen.

Fehler

epoll_wait() schlägt fehl, wenn gilt:


EBADF

epfd ist kein gültiger Dateideskriptor.


EINVAL

epfd ist kein Dateideskriptor eines epoll-Objekts oder maxevents ist kleiner oder gleich 0.


EFAULT

Auf den Speicher, auf den events zeigt, kann nicht schreibend zugegriffen werden.

 

EINTR

Der Aufruf wurde von einem Signal unterbrochen, bevor ein Ereignis eingetreten oder timeout abgelaufen ist.

Siehe auch

epoll_create(), epoll_ctl()