C standard library :: select

select - synkron I/O multiplexing

int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)

Funktionen undersøger fd_set (file descriptor set) i parameterne readfds, writefds og exceptfds, for om deres descriptors henholdsvis er klar til læsning, klar til skrivning eller har en undtagelsestilstand ventende. Funktionen supporterer almindelige filer, terminal og pseudo-terminal devices, [XSR] [Option Start]STREAMS-baserede filer,[Option End] FIFO'er, pipes og sockets. Andre typer af file descriptor er ikke supporteret.

Parameteren nfds angiver et spænd af descriptors der skal testes. Den første nfds descriptor vil chekes i hvert set, hvilket er, descriptors fra 0 til nfds-1 i descriptor sets.

Hver af parameterne readfds, writefds og exceptfds sættes op før kaldet med de file descriptor i hvert set der ønskes et check på, disse ønskede file descriptor sets opdateres af funktionen.

Hvis readfds parameteren ikke er en nul-peger, bliver hver file descriptor i readfds der ønskes check på, opdateret om de er klar til læsning.

Hvis writefds parameteren ikke er en nul-peger, bliver hver file descriptor i writefds der ønskes check på, opdateret om de er klar til skrivning.

Hvis exceptfds parameteren ikke er en nul-peger, bliver hver file descriptor i exceptfds der ønskes check på, opdateret de har en undtagelsestilstand ventende.

Når select() returnerer er objekterne readfds, writefds og exceptfds opdaterede med henblik på hvilke file desriptors der klar for læsning, klar for skrivning og har undtagelsestilstande ventende og vil returnere det totale antal for alle sets.

Hvis ingen af de udvalgt descriptors er klar med noget i forhold til ønskede check, vil funktionen blokere indtil mindst en descriptor er blevet klar, eller indtil timeout mødes, eller funktionen afbrydes af et signal. Parameteren timeout kontrollerer hvorlænge der ventes på, at en descriptor bliver klar. Med timeout sættes en maksimum ventetid. Hvis timeout er en nul-peger, blokerer funktionen evigt hvis ingen descriptor er klar. For at udføre et poll skal timeout ikke være en nul-peger, men pege på en timeval med nul værdier for sekunder og mikrosekunder.

Bruges af timeout har ingen indflydelse på nogen ventende timers iværksat med alarm(), ualarm() eller setitimer().

Der kan være begrænsninger på implementeringer for maksimal tiden en timeout kan være. Alle implementeringer skal dog supportere en maksimum timeout på 31 dage. Implementeringer kan give forskelle i nøjagtigheden i tider og der kan også være konfiguration i implemeteringen, der kan vælge mellem flere kilder til tidstagning.

Hvis hver af parameterne readfds, writefds og exceptfds er nul-pegere og timeout sættes op, vil funktionen blokere for den angive til i timeout eller et signal indtræffer.

Hvis hver af parameterne readfds, writefds og exceptfds er nul-pegere og timeout sættes op, vil funktionen blokere for den angivne tid i timeout eller indtil et signal indtræffer. Hvis også timeout er en nul-peger vil funktionen blokere indtil et signal indtræffer.

Returværdi

Ved succes vil funktionen returnere antal af bits i alle set der er klar med noget. Hvis ingenting er klar returneres -1 og errno er sat med årsagen.

Fejl

Funktionen vil fejle, hvis:

[EBADF]
En eller flere af file descriptor sets specificerer en file descriptor som ikke er valid.
[EINTR]
Funktionen blev afbrudt før nogen af de udvalgt hændelser opstod og før timeout internallet indtraf.
[EINVAL]
En invalid timeout internal var angivet.
[EINVAL]
[XSR] [Option Start]En af de angivne file descriptors refererer til en STREAM eller multiplexer som er kædet (direkte eller indirekte) downstream fra en multiplexer.[Option End]

 

 

 

Ressourcer C Library opslag The Single UNIX® Specification, Version 2 Copyright © 1997 The Open Group GNU C Library Engelsk, med masser af gode og dybe artikler. Danske søgeord Find selv de bedste danske søgeord til din hjemmeside.
Produkter Bookingsystem
System for reservation af tid for behandlinger, aftaler, lokaler, udstyr, personale. Tilpasset lektionstimer. Udskriver arbejdsplaner og ugeskema for opslag. Statistik. Danmarks bedste pris nu kun kr. 1.695,-
HelpdeskEffektiviser din support-organisation med et Helpdesksystem. Fjern tidrøvere der forhindrer fokus på problemløsning. Lektionsplan Formidling af generelle information og specifikke lektioner fra undervisere til studerende/elever. Medlemssystem Medlemssystem online med administration af medlemskartotek, kontingentbetalinger, flettefiler m.m.
Styr selv Styr selv indholdet på dine hjemmesider med Content Management System.
Citat Det mystiske er det mest vidunderlige, vi kan opleve. Det er kilden til al ægte kunst og videnskab.

Albert Einstein



Professionelle løsninger til Internettet. Webdesign, e-handel, cms, søgeoptimering, webhotel, analyse, Intranet mm.