日本語 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.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
POLL(2) FreeBSD システムコールマニュアル POLL(2) 名称 poll -- 同期 I/O の多重化 ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <poll.h> int poll(struct pollfd fds[], nfds_t nfds, int timeout); int ppoll(struct pollfd fds[], nfds_t nfds, const struct timespec * restrict timeout, const sigset_t * restrict newsigmask); 解説 poll() システムコールは、それらのいくつかが I/O の準備ができているかどう か確かめるために、1 組のファイル記述子を検査します。fds 引数は、(以下に表 示される) <poll.h> に定義されるような pollfd 構造体の配列へのポインタで す。nfds 引数は、fds 配列のサイズを決定します。 struct pollfd { int fd; /* ファイル記述子 */ short events; /* 検索するイベント */ short revents; /* 返されるイベント */ }; struct pollfd のフィールドは、次の通りです: fd poll へのファイル記述子。fd が -1 に等しいなら、revents は、 クリアされ (0 に設定)、その pollfd は、チェックされません。 events poll するイベント。(以下を参照。) revents 発生するイベント。(以下を参照。) events と revents のイベントのビットマスクには、次のビットがあります: POLLIN 高い優先度のデータ以外のデータは、ブロッキングなしで読み込 まれます。 POLLRDNORM 通常のデータは、ブロッキングなしで読み込まれます。 POLLRDBAND 0 でない優先度があるデータは、ブロッキングなしで読み込まれ ます。 POLLPRI 高い優先度のデータは、ブロッキングなしで読み込まれます。 POLLOUT POLLWRNORM 通常のデータは、ブロッキングなしで書き込まれます。 POLLWRBAND 0 でない優先度があるデータは、ブロッキングなしで書き込まれ ます。 POLLERR 例外的な条件が、デバイスまたはソケットで生じました。このフ ラグは、たとえ、events のビットマスクがなくても、常に チェックされます。 POLLHUP デバイスまたはソケットが切断されています。このフラグは、 events のビットマスクになくても、常にチェックされます。 POLLHUP と POLLOUT は、revents のビットマスクが決して同時 に存在するべきでないことに注意してください。 POLLNVAL ファイル記述子がオープンされていません。このフラグは、たと え events のビットマスクになくても、常にチェックされます。 timeout が 0 でも INFTIM (-1) でもないなら、それは、ミリ秒単位で、あらゆ るファイル記述子が準備ができるまで待つために、最大の間隔を指定します。 timeout が INFTIM(-1) であるなら、poll は、無期限にブロックします。 timeout が 0 であるなら、poll() は、ブロッキングなしで返ります。 ppoll() システムコールは、poll() と異なり、1 組のファイル記述子が準備がで きているようになるまで、またはシグナルが捕獲されるまで、安全にウェート (待つ) するために使用されます。fds と nfds 引数は、poll() の類似した引数 と同一です。ppoll() の timeout 引数は、poll() によって使用される int timeout ではなく (以下に表示されている) <sys/timespec.h> に定義されている const struct timespec を指します。NULL ポインタは、ppoll() が無制限に待つ べきであることを示すために渡されます。最後に、newsigmask は、入力を待つ間 に設定されるシグナルマスクを指定します。ppoll() が返るとき、オリジナルの シグナルマスクが復旧されます。 struct timespec { time_t tv_sec; /* 秒 */ long tv_nsec; /* とナノ秒 */ }; 戻り値 poll() システムコールは、I/O の準備ができている記述子の数を返し、エラーが 生じたなら、-1 を返します。時間制限の起源が切れるなら、poll() は、0 を返 します。poll() が割り込まれたシステムコールのためのものを含めて、エラーで 返るなら、fds 配列は、修正されません。 互換性 この実装は、与えられたファイル記述子によって poll() がエラーで返らない点 において、歴史的なものと異なります。これが、(例えば、revoke(2) された記述 子を poll することを試みる) 歴史的な実装で起こっていた場合に、この実装 は、その代りに、events のビットマスクを revents のビットマスクにコピーし ます。次に、この記述子で I/O の実行を試みることは、エラーを返します。この 振る舞いは、より役に立つと考えられます。 エラー poll() から返るエラーは、次を示します: [EFAULT] fds 引数が、プロセスの割り付けられたアドレス空間の外側 を指しています。 [EINTR] 時間制限の期限が切れる前に、選択されたイベントのいずれ かが起こる前に、シグナルが配信されました。 [EINVAL] 指定された時間の制限が無効です。その構成要素の 1 つ が、負または大きすぎます。 関連項目 accept(2), connect(2), kqueue(2), pselect(2), read(2), recv(2), select(2), send(2), write(2) 規格 poll() 関数は、IEEE Std 1003.1-2001 (``POSIX.1'') に適合しています。 ppoll() は、POSIX によって明記されていません。 歴史 poll() 関数は、AT&T System V UNIX で登場しました。このマニュアルページと 実装の中核は、NetBSD から受け継がれました。ppoll() 関数は、FreeBSD 11.0 ではじめて登場しました。 バグ events と revents のビットマスクのフィールドのうちのいくつかの違いは、実 際に STREAMS なしで役に立ちません。フィールドは、既存のソフトウェアとの互 換性のために定義されています。 FreeBSD 11.2 November 13, 2014 FreeBSD 11.2