mincore サブルーチン

目的

メモリー・ページの常駐状況を判別します。

ライブラリー

標準 C ライブラリー (libc.a)。

構文

int mincore ( addr len, * vec)
caddr_t addr;
size_t len;
char *vec;

説明

mincore サブルーチンは、 mmap サブルーチンに対して行われた呼び出しから作成された領域の 1 次メモリー常駐状況を返します。 状況は、 addr および len パラメーターで指定された範囲内のメモリー・ページごとに 1 文字として戻されます。 参照されるページが 1 次メモリー内にある場合、返される各文字の最下位ビットは 1 に設定されます。 それ以外の場合、ビットは 0 に設定されます。 各文字の他のビットの設定は未定義です。

パラメーター

項目 説明
addr 常駐を判別するメモリー・ページの開始アドレスを指定します。 sysconf サブルーチンが Name パラメーターに _SC_PAGE_SIZE 値を使用して戻したページ・サイズの倍数でなければなりません。
len 常駐が決定されるメモリー領域の長さをバイト単位で指定します。 len 値が、 sysconf サブルーチンが Name パラメーターに _SC_PAGE_SIZE 値を使用して戻したページ・サイズの倍数でない場合は、次のようになります。 領域の長さは、ページ・サイズの次の倍数に切り上げられます。
VEC 常駐状況が戻される文字配列を指定します。 システムは、 vec パラメーターで指定された文字配列が、指定されたページごとに返される文字を包含するのに十分な大きさであると想定します。

戻り値

正常に実行された場合、 mincore サブルーチンは 0 を戻します。 そうでない場合は-1を返し、エラーを示すグローバル変数errnoをセットする。

エラー・コード

mincore サブルーチンが失敗した場合、 errno グローバル変数は次のいずれかの値に設定されます。

項目 説明
EFAULT vec パラメーターで指定されたバッファーの一部が範囲外であるか、またはアクセス不能です。
EINVAL addr パラメーターは、 sysconf サブルーチンが Name パラメーターに _SC_PAGE_SIZE 値を使用して戻したページ・サイズの倍数ではありません。
ENOMEM (addr, addr + len) 範囲内のアドレスが、プロセスのアドレス・スペースに対して無効であるか、マップされていない 1 つ以上のページを指定しています。