instance method IO#advise
advise(advice, offset=0, len=0) -> nil
-
posix_fadvise(2) を呼びだし、 ファイルへのアクセスパターンをOSに知らせます。
advice には以下のいずれかのシンボルを指定します。
- :normal - デフォルト
- :sequential - データは前から順にアクセスされる
- :random - データはランダムアクセスされる
- :willneed - データはこの直後にアクセスされる
- :dontneed - データは直後にはアクセスしない
- :noreuse - データは一度しかアクセスされない
これらの advice が具体的に何をするのかはプラットフォーム依存です。
ここでいう「データ」は offset と len で特定することができます。 len が 0 ならば、offset からファイル末尾までを指定したことになります。 デフォルトでは offset と len がともに 0 なので、 ファイル全体を指定したことになります。
posix_fadvise をサポートしていないプラットフォーム上では 何もしません。
- [PARAM] advice:
- アクセスパターンを表すシンボル
- [PARAM] offset:
- パターンを指定するデータの先頭位置
- [PARAM] len:
- パターンを指定するデータの長さ
- [EXCEPTION] IOError:
- ストリームが既に閉じられているときに発生する例外
- [EXCEPTION] Errno::EBADF:
- ファイルデスクリプタが不正であるときに発生する例外
- [EXCEPTION] Errno::EINVAL:
- advice が不正
- [EXCEPTION] Errno::ESPIPE:
- ファイルデスクリプタが FIFO か pipe を指している 場合に発生する例外(Linux はこの場合には Errno::EINVAL を発生する)
- [EXCEPTION] RangeError:
- offset,lenが有効範囲から出ている場合に発生する例外
class IO