[fpc-pascal] fpselect does not work on linux
Michael Van Canneyt
michael at freepascal.org
Sat May 9 12:54:22 CEST 2009
On Sat, 9 May 2009, Jonas Maebe wrote:
>
> On 09 May 2009, at 09:38, Rainer Stratmann wrote:
>
> >To find out if a nonblocking socket has connected I use the following piece
> >of
> >code:
> >
> >With windows that works, but with linux I get alwas the result that the
> >socket
> >is writable.
> >
> >function is_writable_socket( sck : integer ) : boolean;
> >var
> > fds : tfdset;
> > tv : timeval;
> >begin
> > {$ifdef linux} fpfd_zero( fds ); fpfd_set( sck , fds ); {$endif}
> > {$ifdef windows} fd_zero( fds ); fd_set( sck , fds ); {$endif}
> > tv.tv_sec := 0;
> > tv.tv_usec := 0;
> > // socket+1 , read , write , except , timeout
> > {$ifdef linux}
> > result := fpselect( sck + 1 ,
>
> Where does the "+ 1" come from?
Man select:
nfds is the highest-numbered file descriptor in any of the three sets, plus 1.
Michael.
More information about the fpc-pascal
mailing list