2009-04-01 10 views

Antwort

6

Ich erinnere mich, dass es nur eine Bitmaske ist. Ein Array von Zeichen (oder einem anderen grundlegenden Typ), wobei jedes Bit des Zeichens den Zustand jedes Dateideskriptors darstellt.

Einige Implementierungen haben auch eine limit-Variable, wenn sie Strukturen variabler Größe erlauben, aber die meisten, die ich gesehen habe (und das sind im Allgemeinen die älteren), erlauben einfach die größte Anzahl von Dateideskriptoren.

Eine Implementierung ist jedoch frei, die gewünschte Datenstruktur zu verwenden, solange die FD_ * -Makros oder -Funktionen ordnungsgemäß initialisiert und geändert werden.

9

Prototypen:

void FD_SET(int fd, fd_set* fdset); 
int FD_ISSET(int fd, fd_set* fdset); 

Von sys/select.h

typedef struct fd_set { 
    u_int fd_count; 
    SOCKET fd_array[FD_SETSIZE]; 
} fd_set; 
+0

ok, Nice. Ich sehe die Antwort. FD_SETSIZE! So viele Hörbuchsen kann ich haben. (* 8) – Flinkman

+0

unter Windows können Sie 64 haben – torial