c++builder環境のwinsock2でネットワークプログラミングしてます。
受信のタイムアウト処理するために、selectを使おうと下のコード
のようにしました。

//変数の値は下のようにしました。
fd_set fds;
FD_ZERO(&fds);
FD_SET(fd,&fds);
struct timeval time;
time.tv_sec = 10;
time.tv_usec = 0;

select無い場合は普通に受信できるプログラムの中で
selectを呼び出すと必ず-1(エラー)が返ります。

ためしに、ShowMessage(select(fd + 1,&fds,NULL,NULL,time));
をいろんな場所で実行してみましたが、すぐに全部-1が表示されました。
違うselectが呼び出されたか、引数がおかしいかぐらいと思うのですが、
何かお気づきの点などありますでしょうか。
よろしくお願いします。