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; // マイクロ秒 };
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |