void FD_ZERO(fd_set *fdset); // fdset 中のすべてのビットをクリアする void FD_SET(int fd, fd_set *fdset); // fdset 中の fd のビットをセットする void FD_CLR(int fd, fd_set *fdset); // fdset 中の fd のビットをクリアする void FD_ISSET(int fd, fd_set *fdset); // fdset 中の fd のビットはセットされているか?
#include <sys/select.h>
#include <sys/time.h>
int select(int max, fd_set *readset, fd_set *writeset, fd_set *exset,
const struct timeval *timeout)
max : 検査するディスクリプタ番号の最大値
readset : readset で指定されたディスクリプタに対して,読むことが可能か
否かをチェックし,結果を同じ変数 readset に返す.チェックを
必要としない場合は,ヌルポインタ( NULL )とすることができる.
これらは,writeset や exset においても同様である.
writeset : 書き込めるか否か
exset : 例外が発生したか否か
timeout : ディスクリプタが準備できる時間に対する待ち時間の設定
struct timeval {
long tv_sec; // 秒
long tv_usec; // マイクロ秒
};
| 菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |