POSIX_FADVISE(2) |
FreeBSD System Calls Manual |
POSIX_FADVISE(2) |
名称
posix_fadvise —
ファイルデータの使用に関するアドバイスを与える
ライブラリ
Standard C Library (libc, -lc)
書式
#include < fcntl.h>
int
posix_fadvise( int fd, off_t offset, off_t len, int advice);
解説
posix_fadvise() システムコールによって、プロセスは、オープンファイル記述子
fd のためのシステムのデータアクセスの振る舞いを記述することができます。アドバイスは、オフセット
offset から始まり、
len バイトの継続するデータをカバーします。
len が 0 であるなら、
offset からファイルの終りまでのすべてのデータがカバーされます。
振る舞いは、 advice パラメータによって指定され、次のうちの 1 つです:
-
POSIX_FADV_NORMAL
-
デフォルトのデータアクセスの振る舞いに戻るようにシステムに伝えます。
-
POSIX_FADV_RANDOM
-
ファイルデータがランダムにアクセスされるヒントで、プロフェッチは、恐らく有利ではありません。
-
POSIX_FADV_SEQUENTIAL
-
ファイルデータがシーケンシャルにアクセスされることをシステムに伝えます。デフォルトの振る舞いがシーケンシャルな振る舞いを検知するために発見的に使用するように、これは、現在何も行いません。
-
POSIX_FADV_WILLNEED
-
指定されたデータが近いうちにアクセスされることをシステムに伝えます。システムは、それがメモリにまだないなら、データの非同期な読み込みを始めます。
-
POSIX_FADV_DONTNEED
-
指定されたデータが近いうちにアクセスされないことをシステムに伝えます。システムは、指定された範囲内のクリーンなデータのメモリ中の優先順位を減少させ、このデータへの将来のアクセスは、読み込み操作を要求するかもしれません。
-
POSIX_FADV_NOREUSE
-
指定されたデータが一度だけアクセスされ、次に、再使用されないことをシステムに伝えます。システムは、いったん読み込まれるか、または書き込まれるなら、データのメモリ内の優先度を減少させます。将来、このデータへのアクセスは、読み込まれた操作を要求されます。
戻り値
The
posix_fadvise() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
エラー
posix_fadvise() システムコールは、次の場合に失敗します:
-
[
EBADF]
-
fd 引数が有効なファイル記述子ではありません。
-
[
EINVAL]
-
advice 引数が有効ではありません。
-
[
EINVAL]
-
offset または
len 引数が負か、または
offset +
len が最大のファイルサイズより大きくなっています。
-
[
ENODEV]
-
fd 引数が通常ファイルを参照していません。
-
[
ESPIPE]
-
fd 引数がパイプまたは FIFO に関連しています。
規格
posix_fadvise() インタフェースは、 IEEE Std 1003.1-2001 (“POSIX.1”) に適合しています。
歴史
posix_fadvise() システムコールは、
FreeBSD 9.1 ではじめて登場しました。