日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引




メモリ・マッピングのアクセス保護を変更します。この関数はリエントラントです。

形式

#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)から返されるページ・サイズの倍数でなくてはなりません。 lensysconf(_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] に無効なアドレスが含まれている。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.