

#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 | 配列 fds の SOCPollFD
の数。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 初版