スポンサーリンク

MPROTECT(2) FreeBSD システムコールマニュアル MPROTECT(2)

名称

mprotect − ページの保護属性を制御する

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <sys/mman.h>

int

mprotect(const void *addr, size_t len, int prot);

解説

mprotect() システムコールは指定のページが保護属性 prot を持つように変更し ます。すべての場合においてページ単位での保護属性を保証するわけではありま せん。保護属性変更の細かさはリージョン全体と同じ大きさかもしれません。 リージョンは struct vm_map_entry の start (開始) と end (終了) のアドレス で定義される仮想アドレス空間です。

現在、以下の OR をとって組み合わせることが可能な保護ビットが知られていま す。

       PROT_NONE

全く保護しません。
PROT_READ
ページは読取り可能です。
PROT_WRITE
ページは書込み可能です。
PROT_EXEC
ページは実行可能です。

戻り値

関数 mprotect() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。

エラー

mprotect() システムコールは次の場合に処理を失敗します:

       [EINVAL]

addr 引数と len 引数で指定している仮想アドレス範囲は有 効ではありません。

[EACCES]
呼び出しプロセスは prot 引数によって指定される値に保護 属性を変更することを許可されていません。

関連項目

madvise(2), mincore(2), msync(2), munmap(2)

歴史

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

FreeBSD 10.0 June 9, 1993 FreeBSD 10.0

スポンサーリンク