日本語 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
READ(2) FreeBSD システムコールマニュアル READ(2) 名称 read, readv, pread, preadv -- 入力を読み込む ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <unistd.h> ssize_t read(int fd, void *buf, size_t nbytes); ssize_t pread(int fd, void *buf, size_t nbytes, off_t offset); #include <sys/uio.h> ssize_t readv(int fd, const struct iovec *iov, int iovcnt); ssize_t preadv(int fd, const struct iovec *iov, int iovcnt, off_t offset); 解説 read() システムコールは、記述子 fd によって参照されるオブジェクトからデー タの nbytes を buf によって指されるバッファに読み込むことを試みます。 readv() システムコールは、同じ動作を実行しますが、iov 配列: iov[0], iov[1], ..., iov[iovcnt-1] のメンバによって指定された iovcnt バッファに入 力データを分散します。pread() と preadv() システムコールは、同じ機能を実 行しますが、ファイルポインタを修正せずに、ファイルの指定された位置から読 み込みます。 readv() と preadv() のために、iovec 構造体は、次のように定義されます: struct iovec { void *iov_base; /* ベースアドレス. */ size_t iov_len; /* 長さ. */ }; 各 iovec エントリは、データが置かれるべきメモリの領域のベースアドレスと長 さを指定します。readv() システムコールは、常に次に進む前に、完全に領域を 満たします。 シーク可能なオブジェクトで、read() は、fd と関連したポインタによって与え られる位置で開始します (lseek(2) を参照)。read() からの返るとき、ポインタ は、実際に読み込まれたバイトの数ずつ増加されます。 シーク可能でないオブジェクトは、常に現在の位置から読み込まれます。そのよ うなオブジェクトに関連したポインタの値は、未定義です。 成功して完了すると、read(), readv(), pread() と preadv() は、実際に読み込 まれ、バッファに置かれたバイトの数を返します。記述子が、ファイルの終り (end-of-file) の前に多くのバイトが残っている通常のファイルを参照するな ら、システムは、要求されたバイトの数を読み込むことを保証しますが、他の場 合は、そうではありません。 戻り値 成功するなら、実際に読み込まれたバイト数が返されます。ファイルの終り (end-of-file) を読み込むと、0 が返されます。そうでなければ、-1 が、返さ れ、グローバル変数 errno は、エラーを示す値に設定されます。 エラー read(), readv(), pread() と preadv() システムコールは、次の場合を除いて成 功します: [EBADF] fd 引数が、読み込みのためにオープンされている有効な ファイル、またはソケット記述子ではありません。 [ECONNRESET] fd 引数が、ソケットを参照し、リモートのソケットの終わ りが、強制的にクローズされました。 [EFAULT] buf 引数が、割り付けられたアドレス空間の外側を指してい ます。 [EIO] I/O エラーが、ファイルシステムから読み込んでいる間に起 こりました。 [EBUSY] ファイルからの読み込みに失敗しました、例えば、<pid> が 停止されない、/proc/<pid>/regs。 [EINTR] 低速デバイス (すなわち、任意の時間ブロックされるかもし れないもの) からの読み込みは、データが到着する前にシグ ナルの配信により割り込まれました。 [EINVAL] fd に関連したポインタが、負でした。 [EAGAIN] ファイルが、ブロッキングされない I/O とマークされて、 データを読み込む準備ができませんでした。 [EISDIR] ファイル記述子が、ディレクトリの通常の読み込み操作を許 可しないファイルシステムでディレクトリと関連しています (例えば、NFS)。 [EOPNOTSUPP] ファイル記述子が、それで通常の読み込み操作を許可しない ファイルシステムとファイルのタイプに関連しています。 [EOVERFLOW] ファイル記述子が、通常のファイルと関連し、nbytes が、0 より大きく、offset が、ファイルの終り (end-of-file) の 前であり、そして offset が、このファイルシステムのため に規定されたオフセットの最大値以上です。 [EINVAL] 値 nbytes が、INT_MAX より大きくなっています。 さらに、readv() と preadv() は、次のエラーの 1 つを返します: [EINVAL] iovcnt 引数が、0 以下であったか、または IOV_MAX より大 きかった。 [EINVAL] iov 配列の iov_len 値の 1 つが、負でした。 [EINVAL] iov 配列の iov_len 値の合計が、32 ビット整数をオーバフ ローしました。 [EFAULT] iov 配列の一部が、プロセスの割り付けられたアドレス空間 の外側を指しています。 また pread() と preadv() システムコールは、次のエラーを返します: [EINVAL] offset 値が、負でした。 [ESPIPE] ファイル記述子が、パイプ、ソケット、または FIFO に関連 しています。 関連項目 dup(2), fcntl(2), getdirentries(2), open(2), pipe(2), select(2), socket(2), socketpair(2), fread(3), readdir(3) 規格 read() システムコールは、ISO/IEC 9945-1:1990 (``POSIX.1'') に適合するはず です。readv() と pread() システムコールは、X/Open Portability Guide Issue 4, Version 2 (``XPG4.2'') に適合するはずです。 歴史 preadv() システムコールは、FreeBSD 6.0 で登場しました。pread() 関数は、 AT&T System V Release 4 UNIX で登場しました。readv() システムコールは、 4.2BSD で登場しました。read() 関数は、Version 6 AT&T UNIX で登場しまし た。 FreeBSD 11.2 December 15, 2015 FreeBSD 11.2