User manual - PPPライブラリ解説書ver.1.01(2003年2月7日)

DT-900 PPP ライブラリ解説書
- 42 -
int selectsocket(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceprfds, struct
timeval *timeout)
ソケットの状態をチェックします。
引数 int nfds : 対象となるソケット番号
fd_set *readfds : データを獲得するソケットへのポインタ
fd_set *writefds : データを送信するソケットへのポインタ
fd_set *exceprfds : 緊急データを獲得するソケットへのポインタ
struct timeval *timeout : タイムアウト値へのポインタ
ゼロポインタは、無制限のタイムアウトを意味します。
戻り値 正の数 : 準備出来ているソケット数
-1 : エラー
0 : タイムアウト
-20 : 電源 ON/OFF あり。
-21 : 回線切断。
-22 : ユーザーブレイク。
-23 : 内部エラー発生。
struct timeval{ /* time-out format for select */
long tv_sec; /* seconds */
long tv_usec; /* microseconds */
};
fd_set は、以下のマクロを使用して操作することが出来ます。
FD_ZERO(&fd_set) ソケットリストをクリアします。
FD_SET(s, &fd_set) ソケット s を追加します。
FD_CLR(s, &fd_set) ソケット s を削除します。
FD_ISSET(s, &fd_set) s が含まれた場合は、ゼロ以外になります。