[fpc-pascal] fpselect does not work on linux

Rainer Stratmann RainerStratmann at t-online.de
Sat May 9 11:18:23 CEST 2009


Am Samstag, 9. Mai 2009 12:17 schrieb Michael Van Canneyt:
> 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 ?
I know that the socket I tested is not writable, but the function returns 
writable... always with linux.

It is not working on linux operating system. With windows os that works.

Someone else have (had?) exactly the same problem:
http://community.freepascal.org:10000/bboards/message?message_id=270583&forum_id=24083
Rainer

> Michael.
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal



More information about the fpc-pascal mailing list