MUNLOCK(2)

名前
munlock - メモリの一部のページングを再開する

書式
#include <sys/mman.h>

int munlock(const void *addr, size_t len);

説明
munlock は addr から始まる長さ len バイトの範囲のメモリのページング(paging)を再開(reenable)する。 指定された範囲のメモリを含んでいる全てのページは munlock を呼び出し後、 再びカーネルによって外部スワップ(swap)に移動できるようになる。 メモリのロック(lock)は累積しない。例えば複数回 mlock や mlockall を呼び出してロックされたページも一回の対応する範囲の munlock や munlockall の呼び出しによってアンロック(unlock)される。 複数の場所や複数のプロセスにマップされているページは、少なくとも一つの場所、 一つのプロセスでロックされている限りは RAM に残り続ける。 mlock と munlock が使用可能である POSIX システムでは _POSIX_MEMLOCK_RANGE が <unistd.h> に定義されており、<limits.h> にある PAGESIZE の値はページあたりのバイト数を示している。

返り値
成功した場合、 munlock はゼロを返す、エラーの場合が -1 を返され、 errno が適切に設定され、プロセスのアドレス空間におけるロックは変更されない。

エラー

ENOMEM
    指定されたアドレスの範囲はプロセスにマップされたアドレス空間と一致しない。

EINVAL
    len が正の数でない。

準拠
POSIX.1b, SVr4

関連項目
mlock(2), mlockall(2), munlockall(2).