日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
SELECT(2) FreeBSD システムコールマニュアル SELECT(2) 名称 select -- 同期 I/O の多重化 ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <sys/select.h> int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); FD_SET(fd, &fdset); FD_CLR(fd, &fdset); FD_ISSET(fd, &fdset); FD_ZERO(&fdset); 解説 select() システムコールは、アドレスが、それらの記述子のいくつかがそれぞ れ、読み込みの準備、書き込みの準備、または保留中の例外的な条件があるかど うか調べるために readfds, writefds と exceptfds で渡された、I/O 記述子の 集合を調査します。検出可能な唯一の例外的な条件は、ソケットで受信された帯 域外のデータです。最初の nfds 記述子は、各集合でチェックされます。すなわ ち、記述子集合の 0 から nfds-1 までの記述子が、調査されます。返り時に、 select() は、与えられた記述子の集合を、要求された操作のための準備ができて いるそれらの記述子から成る部分集合と置き換えます。select() システムコール は、すべての集合で準備ができている記述子の合計数を返します。 記述子の集合は、整数の配列のビットフィールドとして格納されます。次のマク ロは、そのような記述子の集合を操作するために提供されています: FD_ZERO(&fdset) は、記述子の集合 fdset を空の集合に初期化します。 FD_SET(fd, &fdset) は、特定の記述子 fd を fdset に含めます。FD_CLR(fd, &fdset) は、fdset から fd を取り除きます。FD_ISSET(fd, &fdset) は、fd が fdset のメンバであるなら、0 以外であり、そうでなければ、0 です。これらの マクロの振る舞いは、記述子の値が 0 未満であるか、または通常、少なくともシ ステムによってサポートされた記述子の最大の数と等しい、FD_SETSIZE 以上であ るなら、未定義です。 timeout が NULL ポインタでないなら、選択が完了することを待つための最大の 間隔を指定します。システムのアクティビティは、不定の量によって間隔を伸ば すことができます。 timeout が NULL ポインタであるなら、select は、無期限にブロックします。 ポーリングを達成するために、timeout 引数は、NULL ポインタであるべきではあ りませんが、0 の値がある timeval 構造体を指すべきです。 readfds, writefds と exceptfds のいずれかは、記述子に、興味がないなら、 NULL ポインタとして与えられます。 戻り値 select() システムコールは、記述子の集合に含まれている準備された記述子の数 を返し、エラーが、起こるなら、-1 を返します。タイムリミットの期限が切れる なる、select() は、0 を返します。select() が割り込まれたシステムコールの ためにそれを含んでいる、エラーで返るなら、記述子の集合は、修正されませ ん。 エラー select() からのエラーの返りは、次を示しています: [EBADF] 記述子の集合の 1 つが、無効の記述子を指定しましたた。 [EFAULT] 引数 readfds, writefds, exceptfds または timeout の 1 つが、無効のアドレスを指しています。 [EINTR] シグナルが、タイムリミットの期限が切れる前で、選択され たイベントのいずれかが起こる前に配達されました。 [EINVAL] 指定されたタイムリミットが、無効です。その構成要素の 1 つが負であるか、または大きすぎます。 [EINVAL] nfds 引数が、無効でした。 関連項目 accept(2), connect(2), getdtablesize(2), gettimeofday(2), kqueue(2), poll(2), read(2), recv(2), send(2), write(2), clocks(7) 注 FD_SETSIZE のデフォルトのサイズは、現在 1024 です。select() でオープンさ れた多くのファイルを潜在的に使用するプログラムを適応するために、 <sys/types.h> を含むあらゆるヘッダのインクルードの前に、FD_SETSIZE を定義 するプログラムがあることによって、このサイズを増加することが可能です。 nfds が、オープンしているファイルの数より大きいなら、select() は、未使用 のファイル記述子を調査することは保証されていません。歴史的な理由で、 select() は、常に最初の 256 の記述子を調査します。 規格 select() システムコールと FD_CLR(), FD_ISSET(), FD_SET() と FD_ZERO() マ クロは、IEEE Std 1003.1-2001 (``POSIX.1'') に準拠しています。 歴史 select() システムコールは 4.2BSD で登場しました。 バグ Version 2 of the Single UNIX Specification (``SUSv2'') によって、システム は、適切にオリジナルのタイムアウトを修正することができます。したがって、 タイムアウト値が select() システムコールによって変更されていないと仮定す ることは、愚かなことです。FreeBSD は、他のシステムから移植されたアプリ ケーションのための問題を起こすかもしれない、返り値を修正しません。 FreeBSD 11.2 November 17, 2002 FreeBSD 11.2