READAHEAD(2) | Linux Programmer's Manual | READAHEAD(2) |
名前
readahead -前もってファイルをページ・キャッシュに読み込む書式
#define _GNU_SOURCE /* feature_test_macros(7) 参照 */
#include <fcntl.h>
ssize_t readahead(int fd , off64_t offset , size_t count );
説明
readahead() は、この後の同じファイルからのデータ読み込み時にディスク I/O で動作が停止 (block) しないように、前もってファイルの内容をページ・キャッシュに読み込む。 fd 引き数は読み込みを行うファイルを識別するファイル・ディスクリプタである。 offset 引き数はデータの読み込み開始位置を指定し、 count は読み込むデータのバイト数を指定する。ディスク I/O はページ単位で実行されるので、実際には offset はページ境界に切り下げられ、読み込みバイト数は (offset+count) より小さくない次のページ境界まで切り上げられる。 readahead() はファイルの末尾を越えた範囲まで読み出しを行うことはない。また、 readahead() は指定したデータの読み込みが終わるまで停止 (block) する。 fd で参照されたオープン済のファイルのファイルオフセットの現在値は変更されない。返り値
readahead() は成功すると 0 を返す。失敗した場合-1 を返し、 errno にエラーの原因を示す値を設定する。エラー
- EBADF
- fd が有効なファイル・ディスクリプタでない、または読み込み用にオープンされていない。
- EINVAL
- fd が参照しているファイルが、 readahead() を行うことができないタイプのファイルであった。
バージョン
readahead() システムコールは Linux 2.4.13 で登場した。 glibc でのサポートは glibc バージョン 2.3 以降で行われている。準拠
readahead() システムコールは Linux 固有であり、移植を考慮したプログラムでは使用を避けるべきである。注意
On some 32-bit architectures, the calling signature for this system call differs, for the reasons described in syscall(2).関連項目
lseek(2), madvise(2), mmap(2), posix_fadvise(2), read(2)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2013-04-01 | Linux |