SOC_Poll

構文

#include <nitroWiFi/soc.h>
#define SOC_POLLRDNORM       0x0001  // Normal data read
#define SOC_POLLWRNORM       0x0008  // Normal data write
#define SOC_POLLERR          0x0020  // Error (revents only)
#define SOC_POLLHUP          0x0040  // Disconnected (revents only)
#define SOC_POLLNVAL         0x0080  // Invalid fd (revents only)

typedef struct SOCPollFD
{
    int         fd;
    short       events;         // input event flags
    short       revents;        // output event flags
} SOCPollFD;
int SOC_Poll( SOCPollFD fds[], unsigned nfds, OSTick timeout );

引数

fds SOCPollFD の配列。
nfds 配列 fdsSOCPollFD の数。0の場合は、timeoutの値に関わらず、直ぐに0で返ります。
timeout タイムアウト。負の値 のときはタイムアウトなし。

返り値

正の数 読み込みあるいは書き込み可能になったソケット記述子の数。
0 呼び出しがタイムアウトしました。

注意:追加のエラーが今後のライブラリリリースで生じたり返されることがあります。すべての負の返り値は汎用のエラーとして扱ってください。

説明

指定したソケット記述子のなかで読み込みや書き込み処理が可能になっている記述子がないか調べます。
SOC_Poll()はイベントが発生すると返ります。ただし、イベントの発生前にtimeoutで指定した時間が経過すると返ります。
SOC_Poll()fdsフィールドはソケット記述子を指定します。呼び出し時にeventsフィールドに調べたいイベントを 指定してください。
複数のイベントをOR値で指定可能です。
reventsフィールドは発生したイベントが返されます。返されるのはeventsフィールドで指定したイベントとエラーです。

events 説明
SOC_POLLRDNORM ソケットは読出しが可能です。(読出しを待つ通常データがあります。)
SOC_POLLWRNORM ソケットに通常データの書き込みが可能です。
reventsで返されるエラー 説明
SOC_POLLERR ソケットにエラーが発生しました。
SOC_POLLHUP ストリーム・ソケットが未接続です。
SOC_POLLNVAL 不正なソケット記述子です。

注意SOC_Poll() は読み込みや書き込み処理が可能になっている可能性があること示します。 したがって SOC_Poll() に続く SOC_Read(), SOC_Write(),SOC_Accept() などの関数で呼び出しスレッドが休眠したり、 エラーが返される場合があります。

参照

履歴

2008/05/14 説明の修正
2005/09/13 初版