MINCORE(2)

名称
mincore - メモリページの常駐の決定

ライブラリ
libc

書式
<sys/mman.h> int mincore(const void *addr, size_t len, char *vec)

解説
mincore() システムコールは、 addr で始まり len バイト続く領域の中の個々のページが常駐しているかどうかを、決定します。 その状態はページあたり 1 文字の vec 配列の中に返されます。 個々の文字は、そのページが常駐していなければ 0 または、以下の <(> sys/mman.h で定義されている) フラグの組み合わせです:

MINCORE_INCORE
    ページはコア内にあります (常駐)。

MINCORE_REFERENCED
    ページは我々に参照されました。

MINCORE_MODIFIED
    ページは我々に変更されました。

MINCORE_REFERENCED_OTHER
    ページは参照されました。

MINCORE_MODIFIED_OTHER
    ページは変更されました。

mincore() によって返される情報は、このシステムコールが戻る時間のために 古くなっているかもしれません。 あるページが常駐することを保証する唯一の方法は、そのページを mlock(2) システムコールでメモリにロックすることです。

戻り値

エラー
mincore() システムコールは次の場合に失敗します:

[EINVAL]
    addr 引数と len 引数によって指定された仮想アドレス範囲が有効ではありません。

[EFAULT]
    vec 引数が正しくないアドレスを指しています。

関連項目
madvise(2), mlock(2), mprotect(2), msync(2), munmap(2), getpagesize(3)

歴史
mincore() システムコールは 4.4BSD ではじめて登場しました。