[fpc-pascal] fpselect does not work on linux
Michael Van Canneyt
michael at freepascal.org
Sat May 9 12:17:57 CEST 2009
On Sat, 9 May 2009, 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 , nil , @fds , nil , @tv ) > 0;
> {$else}
> result := select( sck + 1 , nil , @fds , nil , @tv ) > 0;
> {$endif}
> end;
And why do you think that this is a bug ?
Michael.
More information about the fpc-pascal
mailing list