kazmax - Linux で自宅サーバー

readahead - システムコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. エラー
  6. 準拠
  7. 備考
  8. 関連項目

名前

readahead - 前もってファイルをページ・キャッシュに読み込む

書式

#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 固有であり、移植を考慮したプログラムでは 使用を避けるべきである。

備考

readahead ()システムコールは Linux 2.4.13 で登場した。

関連項目