OSDN Git Service

長音記号の修正を draft に反映
[linuxjm/LDP_man-pages.git] / draft / man2 / mprotect.2
index 22793f6..b327f3c 100644 (file)
@@ -52,7 +52,7 @@
 .\"
 .TH MPROTECT 2 2014\-01\-05 Linux "Linux Programmer's Manual"
 .SH 名前
-mprotect \- メモリ領域の保護を設定する
+mprotect \- メモリ領域の保護を設定する
 .SH 書式
 .nf
 \fB#include <sys/mman.h>\fP
@@ -61,36 +61,36 @@ mprotect \- メモリ領域の保護を設定する
 .fi
 .SH 説明
 \fBmprotect\fP()  は、区間 [\fIaddr\fP,\ \fIaddr\fP+\fIlen\fP\-1] のアドレス範囲を含む
-呼び出し元のプロセスのメモリページのアクセス保護を変更する。 \fIaddr\fP はページ境界に一致していなければならない。
\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83­ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ä¿\9dè­·ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82 \fIaddr\fP ã\81¯ã\83\9aã\83¼ã\82¸å¢\83ç\95\8cã\81«ä¸\80è\87´ã\81\97ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
 
-呼び出し元のプロセスがアクセス保護に違反するようなメモリアクセスを 行おうとすると、カーネルはシグナル \fBSIGSEGV\fP
\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83­ã\82»ã\82¹ã\81\8cã\82¢ã\82¯ã\82»ã\82¹ä¿\9dè­·ã\81«é\81\95å\8f\8dã\81\99ã\82\8bã\82\88ã\81\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\82¯ã\82»ã\82¹ã\82\92 è¡\8cã\81\8aã\81\86ã\81¨ã\81\99ã\82\8bã\81¨ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\82·ã\82°ã\83\8aã\83« \fBSIGSEGV\fP
 をそのプロセスに対して生成する。
 .PP
 \fIprot\fP には、 \fBPROT_NONE\fP か、以下のリストの \fBPROT_NONE\fP 以外の値をビット毎の論理和 (bitwize\-or)
 で指定する:
 .TP  1.1i
 \fBPROT_NONE\fP
-そのメモリには全くアクセスできない。
\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\81¯å\85¨ã\81\8fã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\81ªã\81\84ã\80\82
 .TP 
 \fBPROT_READ\fP
-そのメモリを読み取ることができる。
\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92読ã\81¿å\8f\96ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
 .TP 
 \fBPROT_WRITE\fP
-そのメモリを変更できる。
\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å¤\89æ\9b´ã\81§ã\81\8dã\82\8bã\80\82
 .TP 
 \fBPROT_EXEC\fP
-そのメモリは実行可能である。
\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81¯å®\9fè¡\8cå\8f¯è\83½ã\81§ã\81\82ã\82\8bã\80\82
 .SH 返り値
 成功した場合、 \fBmprotect\fP()  は 0 を返す。エラーの場合は \-1 が返り、 \fIerrno\fP が適切に設定される。
 .SH エラー
 .TP 
 \fBEACCES\fP
-指定されたアクセスをメモリに設定することができない。 これは、例えば ファイルを読み取り専用で \fBmmap\fP(2)  しており、その領域に対して
\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\82¯ã\82»ã\82¹ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81«è¨­å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\81¯ã\80\81ä¾\8bã\81\88ã\81° ã\83\95ã\82¡ã\82¤ã\83«ã\82\92読ã\81¿å\8f\96ã\82\8aå°\82ç\94¨ã\81§ \fBmmap\fP(2)  ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81ã\81\9dã\81®é \98å\9f\9fã\81«å¯¾ã\81\97ã\81¦
 \fBmprotect\fP()  を呼び出して \fBPROT_WRITE\fP に設定しようとした場合に発生する。
 .TP 
 \fBEINVAL\fP
 .\" Or: both PROT_GROWSUP and PROT_GROWSDOWN were specified in 'prot'.
-\fIaddr\fP が有効なポインタでないか、 システムのページサイズの倍数でない。
+\fIaddr\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\81\8bã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\81®å\80\8dæ\95°ã\81§ã\81ªã\81\84ã\80\82
 .TP 
 \fBENOMEM\fP
 カーネル内部の構造体を割り当てることができなかった。
@@ -102,14 +102,14 @@ mprotect \- メモリ領域の保護を設定する
 .SH 準拠
 .\" SVr4 defines an additional error
 .\" code EAGAIN. The SVr4 error conditions don't map neatly onto Linux's.
-SVr4, POSIX.1\-2001.  POSIX では、 \fBmmap\fP(2)  経由で獲得していないメモリ領域に対して \fBmprotect\fP()
-を行った場合の \fBmprotect\fP()  の動作は未定義であるとされている。
+SVr4, POSIX.1\-2001.  POSIX では、 \fBmmap\fP(2)  経由で獲得していないメモリー領域に対して
+\fBmprotect\fP()  を行った場合の \fBmprotect\fP()  の動作は未定義であるとされている。
 .SH 注意
 Linux では、(カーネル vsyscall 領域以外の)  任意のプロセスアドレス空間に対して \fBmprotect\fP()
 を呼び出すことが、常に許されている。 これは特に既存のコードマッピングを書き込み可能にするために使われる。
 
-\fBPROT_EXEC\fP が \fBPROT_READ\fP と異なる影響を持つか否かは、アーキテクチャとカーネルのバージョンに依存する。 (i386
-などの) いくつかのアーキテクチャでは、 \fBPROT_WRITE\fP をセットすると、暗黙のうちに \fBPROT_READ\fP がセットされる。
+\fBPROT_EXEC\fP ã\81\8c \fBPROT_READ\fP ã\81¨ç\95°ã\81ªã\82\8bå½±é\9f¿ã\82\92æ\8c\81ã\81¤ã\81\8bå\90¦ã\81\8bã\81¯ã\80\81ã\82¢ã\83¼ã\82­ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81¨ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81«ä¾\9då­\98ã\81\99ã\82\8bã\80\82 (i386
\81ªã\81©ã\81®) ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82­ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 \fBPROT_WRITE\fP ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\81¨ã\80\81æ\9a\97é»\99ã\81®ã\81\86ã\81¡ã\81« \fBPROT_READ\fP ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82
 
 POSIX.1\-2001 では、 \fIprot\fP で指定されていないアクセスを許可する実装を認めている。 ただし、最低限、 \fBPROT_WRITE\fP
 がセットされている場合にのみ書き込みアクセスが許可され、 \fBPROT_NONE\fP がセットされている場合にはアクセスは許可されない点だけは
@@ -117,7 +117,7 @@ POSIX.1\-2001 では、 \fIprot\fP で指定されていないアクセスを許
 .SH 例
 .\" sigaction.2 refers to this example
 .PP
-以下のプログラムは、メモリページを 4つ確保し、そのうち 3番目のページを 読み込み専用に設定する。その後で、確保した領域のアドレスの小さい方から
+以ä¸\8bã\81®ã\83\97ã\83­ã\82°ã\83©ã\83 ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\82\92 4ã\81¤ç¢ºä¿\9dã\81\97ã\80\81ã\81\9dã\81®ã\81\86ã\81¡ 3ç\95ªç\9b®ã\81®ã\83\9aã\83¼ã\82¸ã\82\92 èª­ã\81¿è¾¼ã\81¿å°\82ç\94¨ã\81«è¨­å®\9aã\81\99ã\82\8bã\80\82ã\81\9dã\81®å¾\8cã\81§ã\80\81確ä¿\9dã\81\97ã\81\9fé \98å\9f\9fã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81®å°\8fã\81\95ã\81\84æ\96¹ã\81\8bã\82\89
 大きな方に向かって順番にバイト値を変更するループを実行する。
 
 プログラムを実行した場合の一例を以下に示す。