EN JA
MPROTECT(2)
MPROTECT(2) FreeBSD System Calls Manual MPROTECT(2)

名称

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

ライブラリ

Standard C Library (libc, -lc)

書式

#include < sys/mman.h>

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

解説

mprotect() システムコールは、保護 prot を持つように指定されたページを変更します。すべての実装は、ページ単位で保護を保証するとは限りません。保護の変更の細かさは、すべてのリージョンと同じくらいの大きさかもしれません。リージョンは、 struct vm_map_entry の始まりと終りのアドレスによって定義される仮想アドレス空間です。

現在、これらの保護ビットは、次のものをともに論理和 (OR) して組み合わせることができることが知られています:

PROT_NONE
すべてのパーミッションがありません。
PROT_READ
ページを読み込むことができます。
PROT_WRITE
ページを書き込むことができます。
PROT_EXEC
ページを実行することができます。

戻り値

The mprotect() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

mprotect() システムコールは、次の場合に失敗します:
[ EINVAL]
addrlen 引数によって指定された仮想アドレス範囲が有効ではありません。
[ EACCES]
呼び出しているプロセスが prot 引数によって指定された値に保護を変更することを許可されていませんでした。

歴史

mprotect() システムコールは、 4.4BSD ではじめて登場しました。
June 9, 1993 FreeBSD