総合手引 | セクション 2 | English | Deutsch | オプション |
#include <sys/select.h>
記述子の集合は、整数配列内のビットフィールドとして保存されます。 このような記述子集合を操作するために次のマクロが用意されています: FD_ZERO(&fdset) は記述子集合 fdset を空集合で初期化します。 FD_SET(fd, &fdset) は特定の記述子 fd を fdset に含めます。 FD_CLR(fd, &fdset) は fd を fdset から削除します。 FD_ISSET(fd, &fdset) は fd が fdset のメンバである場合は非 0 の値を、そうでない場合は 0 を返します。 これらのマクロの動作は、記述子の値が 0 未満であるか、または FD_SETSIZE 以上である場合は未定義です。 FD_SETSIZE は通常、少なくとも、システムがサポートする記述子の最大数に等しくなります。
timeout が、NULL ポインタでない場合、それはセレクションの完了を 待つ最大間隔を指定します。 システムの活動性が、この間隔を不定時間延長することがあります。
timeout が NULL ポインタの場合、 select() は無期限にブロックします。
ポーリングのためには、 timeout 引数は NULL でなく、値が 0 の timeval 構造体を指しているべきです。
readfds, writefds および exceptfds のどれについても、いずれの記述子も興味がない場合は NULL ポインタを指定できます。
[EBADF] | |
記述子集合のどれかが無効な記述子を指定していました。 | |
[EFAULT] | |
readfds, ,, writefds, ,, exceptfds または timeout の引数の 1 つが無効なアドレスを指しています。 | |
[EINTR] | |
タイムリミットが切れる前あるいは選択したイベントのいずれかが起きる前に、 シグナルが配送されました。 | |
[EINVAL] | |
指定のタイムリミットは無効です。 どれかが負であるか、または大きすぎます。 | |
[EINVAL] | |
nfds 引数が無効でした。 | |
nfds がオープンファイルの数より大きい場合、 select() が未使用のファイル記述子を調査することは保証されていません。 歴史的な理由で、 select() は最初の 256 個の記述子を必ず調査します。
SELECT (2) | November 17, 2002 |
総合手引 | セクション 2 | English | Deutsch | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | When people say "Drive safe!" I'm like no, a safe is for keeping money, I drive car. | ” |
— Artur Bagyants |