最終更新:2023-11-07 (火) 11:19:44 (133d)
select
Top / select
複数のディスクリプタをポーリングできる便利なシステムコール
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/stdout.3.html
プログラムで複数のファイルディスクリプタを監視し、 一つ以上のファイルディスクリプタがある種の I/O 操作の 「ready (準備ができた)」状態 (例えば、読み込み可能になった状態) になるまで待つことができる
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
ファイルディスクリプタ
- openで開いたもの
動作
- 3 つの独立したファイルディスクリプター集合の監視を行う。
- nfds は 3 つの集合に含まれるファイルディスクリプターの最大値に 1 を足したものである。
- readfds に入れられたディスクリプターについては、読み込みが可能かどうかを 監視する
- writefds に入れられたディスクリプターについては、書き込み用に利用可能な領域があるかを監視する
- exceptfds にあるものについては、例外の監視を行なう。
ディスクリプタ集合の操作
引数
- timeval?
struct timeval { long tv_sec; /* 秒 */ long tv_usec; /* マイクロ秒 */ };
ヘッダファイル
以前
POSIX.1-2001
- sys/select.h?