日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
mprotect |
メモリ・マッピングのアクセス保護を変更します。この関数はリエントラントです。
#include <mman.h>int mprotect (void *addr, size_t len, int prot);
addr
変更しようとしているリージョンのアドレス。len
変更しようとしているリージョンのバイト長。prot
<mman.h>ヘッダ・ファイルに定義されているアクセス許可。 PROT_NONE,PROT_READ,または PROT_WRITE を指定します。
mprotect関数は,マップされたファイルまたは共用メモリ・リージョンのアクセス保護を変更します。addr および len 引数は,変更しようとしているリージョンのアドレスとバイト長を指定します。 len 引数は, sysconf(_SC_PAGE_SIZE)から返されるページ・サイズの倍数でなくてはなりません。 len が sysconf(_SC_PAGE_SIZE)から返されるページ・サイズの倍数でなかった場合,リージョンの長さは,ページ・サイズの次の倍数に切り上げられます。
prot 引数は,マップされたリージョンのアクセス許可を指定します。以下のいずれかを指定します。
PROT_NONE アクセスなし PROT_READ 読み込み専用 PROT_WRITE 読み書きアクセス
mprotect関数は,指定されたリージョンの外に位置するリージョンのアクセス許可を変更しません。ただし,リージョンの終端と,リージョンの終端を含んでいるページの終端の間のアドレスに対する効果は定められていません。
mprotect関数が, EINVAL で指定される条件以外の条件で実行に失敗した場合,範囲 [addr, addr + len] にある一部のページのアクセス保護は変更される可能性があります。たとえば,addr2 にある何らかのページでエラーが起こった場合, mprotectは範囲 [addr, addr2] にあるすべてのページの保護を変更する可能性があります。
sysconfも参照してください。
0 成功を示します。 -1 エラーを示します。 errno は以下のいずれかの値に設定されます。
- EACCESS--- prot 引数は,下位のファイルのアクセス許可と矛盾する保護を指定している。
- EINVAL--- prot 引数が無効であるか, addr 引数が sysconf(_SC_PAGE_SIZE) から返されるページ・サイズの倍数でない。
- EFAULT---範囲 [ addr, addr + len] に無効なアドレスが含まれている。
目次 | 索引 |
|