EN JA
POSIX_FADVISE(2)
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 に関連しています。

関連項目

madvise(2)

規格

posix_fadvise() インタフェースは、 IEEE Std 1003.1-2001 (“POSIX.1”) に適合しています。

歴史

posix_fadvise() システムコールは、 FreeBSD 9.1 ではじめて登場しました。
June 19, 2012 FreeBSD