-.I old_address
-¤È
-.I old_size
-¤Ç»ØÄꤵ¤ì¤ë¥á¥â¥ê¥»¥°¥á¥ó¥È¤¬
-.RB ( mlock (2)
-¤äƱÍͤΤâ¤Î¤Ç) ¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¤¬ÊѤï¤Ã¤¿¤ê
-ºÆÇÛÃÖ¤µ¤ì¤¿¤ê¤·¤¿»þ¤Ë¥í¥Ã¥¯¤â°Ý»ý¤µ¤ì¤ë¡£
-¤½¤Î·ë²Ì¡¢¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤µ¤ì¤ë¥á¥â¥ê¤ÎÎ̤ÏÊѲ½¤¹¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¤Ï
-.BR mremap ()
-¤Ï¿·¤·¤¤²¾ÁÛ¥á¥â¥êÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤Î¾ì¹ç¤Ï
-.B MAP_FAILED
-(¤¹¤Ê¤ï¤Á \fI(void\ *)\ \-1\fP) ¤¬ÊÖ¤µ¤ì¡¢
-\fIerrno\fP ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
-.TP
-.B EAGAIN
-¸Æ¤Ó½Ð¤·¸µ¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò³ÈÄ¥¤·¤è¤¦¤È¤·¤¿¤¬¡¢
-.B RLIMIT_MEMLOCK
-¥ê¥½¡¼¥¹À©¸Â¤ò±Û¤¨¤º¤Ë¤³¤ì¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤Ê¤¤¡£
-.TP
-.B EFAULT
-¡Ö¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿(segmentation fault)¡×
-\fIold_address\fP ¤«¤é \fIold_address\fP+\fIold_size\fP ¤Î
-ÈϰϤΥ¢¥É¥ì¥¹¤Î¤É¤ì¤«¤¬¤³¤Î¥×¥í¥»¥¹¤Ë¤ª¤¤¤ÆÉÔÀµ¤Ê²¾ÁÛ¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
-¤¿¤È¤¨Í׵ᤷ¤¿¥¢¥É¥ì¥¹¶õ´ÖÁ´ÂΤò´Þ¤à¤è¤¦¤Ê¥Þ¥Ã¥Ô¥ó¥°¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢
-¤½¤ì¤é¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬°Û¤Ê¤Ã¤¿·¿¤Ê¤é¤Ð
-.B EFAULT
-¤ò¼õ¤±¼è¤ë¤À¤í¤¦¡£
-.TP
-.B EINVAL
-ÉÔÀµ¤Ê°ú¤¿ô¤¬Í¿¤¨¤é¤ì¤¿¡£
-²ÄǽÀ¤Î¤¢¤ë¸¶°ø¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë:
-¤¿¤¤¤Æ¤¤¤Ï \fIold_address\fP ¤¬¥Ú¡¼¥¸¶³¦¤Ë
-¹ç¤Ã¤Æ¤Ê¤¤;
-.I flags
-¤Ë
-.B MREMAP_MAYMOVE
-¤Þ¤¿¤Ï
-.B MREMAP_FIXED
-°Ê³°¤ÎÃͤ¬»ØÄꤵ¤ì¤Æ¤¤¤ë;
-.I new_size
-¤¬¥¼¥í;
-.I new_size
-¤Þ¤¿¤Ï
-.I new_address
-¤ÎÃͤ¬ÉÔÀµ;
-.I new_address
-¤È
-.I new_size
-¤Ç»ØÄꤵ¤ì¤ë¿·¤·¤¤¥¢¥É¥ì¥¹ÈϰϤ¬
-.I old_address
-¤È
-.I old_size
-¤Ç»ØÄꤵ¤ì¤ë¸Å¤¤¥¢¥É¥ì¥¹ÈϰϤȽŤʤäƤ¤¤ë;
-.B MREMAP_FIXED
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬
-.B MREMAP_MAYMOVE
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
-.TP
-.B ENOMEM
-¸½ºß¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤Ç¤Ï¥á¥â¥êÎΰ褬³ÈÄ¥¤Ç¤¤º¡¢
-.B MREMAP_MAYMOVE
-¥Õ¥é¥°¤¬ \fIflags\fP ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
-¤Þ¤¿¤Ï½½Ê¬¤Ê (²¾ÁÛ) ¥á¥â¥ê¤¬Â¸ºß¤·¤Ê¤¤¡£
-.SH ½àµò
-¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃͤǤ¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç
-»ÈÍѤ¹¤Ù¤¤Ç¤Ï¤Ê¤¤¡£
-.\" 4.2BSD ¤Ë¤Ï (¼ÂºÝ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤¬)
-.\" Á´¤¯°Û¤Ã¤¿Êý¼° (semantics) ¤Ë¤è¤ë
+\fIold_address\fP と \fIold_size\fP で指定されるメモリセグメントが (\fBmlock\fP(2) や同様のもので)
+ロックされている場合、セグメントのサイズが変わったり 再配置されたりした時にロックも維持される。
+その結果、プロセスによってロックされるメモリの量は変化する。
+.SH 返り値
+成功した場合は \fBmremap\fP() は新しい仮想メモリ領域へのポインタを返す。 エラーの場合は \fBMAP_FAILED\fP (すなわち
+\fI(void\ *)\ \-1\fP) が返され、 \fIerrno\fP が適切に設定される。
+.SH エラー
+.TP
+\fBEAGAIN\fP
+呼び出し元がロックされているメモリセグメントを拡張しようとしたが、 \fBRLIMIT_MEMLOCK\fP リソース制限を越えずにこれを行うことができない。
+.TP
+\fBEFAULT\fP
+「セグメンテーション違反(segmentation fault)」 \fIold_address\fP から
+\fIold_address\fP+\fIold_size\fP の 範囲のアドレスのどれかがこのプロセスにおいて不正な仮想メモリ・アドレスである。
+たとえ要求したアドレス空間全体を含むようなマッピングがあったとしても、 それらのマッピングが異なった型ならば \fBEFAULT\fP を受け取るだろう。
+.TP
+\fBEINVAL\fP
+不正な引き数が与えられた。 可能性のある原因は以下の通りである: たいていは \fIold_address\fP がページ境界に 合ってない;
+\fIflags\fP に \fBMREMAP_MAYMOVE\fP または \fBMREMAP_FIXED\fP 以外の値が指定されている; \fInew_size\fP
+がゼロ; \fInew_size\fP または \fInew_address\fP の値が不正; \fInew_address\fP と \fInew_size\fP
+で指定される新しいアドレス範囲が \fIold_address\fP と \fIold_size\fP で指定される古いアドレス範囲と重なっている;
+\fBMREMAP_FIXED\fP が指定されているが \fBMREMAP_MAYMOVE\fP が指定されていない。
+.TP
+\fBENOMEM\fP
+現在の仮想アドレスではメモリ領域が拡張できず、 \fBMREMAP_MAYMOVE\fP フラグが \fIflags\fP に設定されていない。 または十分な
+(仮想) メモリが存在しない。
+.SH 準拠
+.\" 4.2BSD had a (never actually implemented)