OSDN Git Service

(split) Correct a typo in readv.2. [JM:00545]
[linuxjm/LDP_man-pages.git] / release / man2 / mremap.2
1 .\" Hey Emacs! This file is -*- nroff -*- source.
2 .\"
3 .\" Copyright (c) 1996 Tom Bjorkholm <tomb@mydata.se>
4 .\"
5 .\" This is free documentation; you can redistribute it and/or
6 .\" modify it under the terms of the GNU General Public License as
7 .\" published by the Free Software Foundation; either version 2 of
8 .\" the License, or (at your option) any later version.
9 .\"
10
11 .\" and "executables" are to be interpreted as the output of any
12 .\" document formatting or typesetting system, including
13 .\" intermediate and printed output.
14 .\"
15 .\" This manual is distributed in the hope that it will be useful,
16 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
17 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 .\" GNU General Public License for more details.
19 .\"
20 .\" You should have received a copy of the GNU General Public
21 .\" License along with this manual; if not, write to the Free
22 .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
23 .\" USA.
24 .\"
25 .\" 1996-04-11 Tom Bjorkholm <tomb@mydata.se>
26 .\"            First version written (1.3.86)
27 .\" 1996-04-12 Tom Bjorkholm <tomb@mydata.se>
28 .\"            Update for Linux 1.3.87 and later
29 .\" 2005-10-11 mtk: Added NOTES for MREMAP_FIXED; revised EINVAL text.
30 .\"
31 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
32 .\"         all rights reserved.
33 .\" Translated 1997-02-23, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
34 .\" Updated 2002-11-26, Kentaro Shirakata <argrath@ub32.org>
35 .\" Updated 2005-10-09, Kentaro Shirakata <argrath@ub32.org>
36 .\" Updated 2006-04-16, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.28
37 .\"
38 .\"WORD:        virtual memory          ²¾ÁÛ¥á¥â¥ê
39 .\"WORD:        remap                   ºÆ¥Þ¥Ã¥Ô¥ó¥°
40 .\"WORD:        argument                °ú¤­¿ô
41 .\"WORD:        address space           ¥¢¥É¥ì¥¹¶õ´Ö
42 .\"WORD:        page align              ¥Ú¡¼¥¸¶­³¦
43 .\"WORD:        linear                  ¥ê¥Ë¥¢
44 .\"WORD:        process                 ¥×¥í¥»¥¹
45 .\"WORD:        segment                 ¥»¥°¥á¥ó¥È
46 .\"WORD:        real memory             ¼Â¥á¥â¥ê
47 .\"WORD:        segmentation violation  ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¿¯³²
48 .\"WORD:        segmentation fault      ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿
49 .\"WORD:        scheme                  Êý¼°
50 .\"WORD:        implement               ¼ÂÁõ
51 .\"WORD:        lock                    ¥í¥Ã¥¯
52 .\"
53 .TH MREMAP 2 2010-06-10 "Linux" "Linux Programmer's Manual"
54 .SH Ì¾Á°
55 mremap \- ²¾ÁÛ¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤òºÆ¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë
56 .SH ½ñ¼°
57 .nf
58 .BR "#define _GNU_SOURCE" "         /* feature_test_macros(7) »²¾È */"
59 .br
60 .B #include <sys/mman.h>
61 .sp
62 .BI "void *mremap(void *" old_address ", size_t " old_size ,
63 .BI "             size_t " new_size ", int " flags ", ... /* void *" new_address " */);"
64 .fi
65 .SH ÀâÌÀ
66 .BR mremap ()
67 ¤Ï´û¸¤Î¥á¥â¥ê¡¦¥Þ¥Ã¥Ô¥ó¥°¤Î³ÈÄ¥ (¤Þ¤¿¤Ï½Ì¾®) ¤ò¹Ô¤¦¡£
68 Ʊ»þ¤Ë°ÜÆ°¤µ¤ì¤ë¤³¤È¤â¤¢¤ë
69 (\fIflags\fP °ú¤­¿ô¤ÈÍøÍѲÄǽ¤Ê²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤è¤Ã¤Æ·è¤Þ¤ë)¡£
70
71 \fIold_address\fP ¤Ï³ÈÄ¥ (¤Þ¤¿¤Ï½Ì¾®) ¤·¤è¤¦¤È¤¹¤ë²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯
72 ¤Î¸µ¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£\fIold_address\fP ¤Ï¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð
73 ¤Ê¤é¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£\fIold_size\fP ¤Ï¸µ¤Î²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯¤Î
74 ¥µ¥¤¥º¤Ç¤¢¤ë¡£
75 \fInew_size\fP ¤ÏÍ׵᤹¤ëÊѹ¹¸å¤Î²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯¤Î¥µ¥¤¥º¤Ç¤¢¤ë¡£
76 5 ÈÖÌܤΰú¤­¿ô¤È¤·¤Æ
77 .I new_address
78 ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£²¼µ­¤Î
79 .B MREMAP_FIXED
80 ¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£
81
82 Linux ¤Ç¤Ï¥á¥â¥ê¤Ï¥Ú¡¼¥¸¤Ëʬ³ä¤µ¤ì¤ë¡£¥æ¡¼¥¶¡¼¡¦¥×¥í¥»¥¹¤Ï (°ì¤Ä¤Þ¤¿¤Ï)
83 Ê£¿ô¤Î¥ê¥Ë¥¢¤Ê²¾ÁÛ¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò»ý¤Ä¡£
84 ¤½¤ì¤¾¤ì¤Î²¾ÁÛ¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ï°ì¤Ä°Ê¾å¤Î¼Â¥á¥â¥ê¡¦¥Ú¡¼¥¸
85 ¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Æ¤¤¤ë (¥Þ¥Ã¥Ô¥ó¥°¾ðÊó¤Ï¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤Ç´ÉÍý¤µ¤ì¤ë)¡£
86 ²¾ÁÛ¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë¤Ï¥»¥°¥á¥ó¥ÈËè¤ÎÊݸî (¥¢¥¯¥»¥¹¸¢) ¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢
87 ¥á¥â¥ê¤¬ÉÔÀµ¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤¿¾ì¹ç (Î㤨¤ÐÆɤ߹þ¤ßÀìÍѤΥ»¥°¥á¥ó¥È¤Ë
88 ½ñ¤­¹þ¤ó¤À¾ì¹ç)¡¢¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¿¯³² (segmentation violation) ¤ò
89 °ú¤­µ¯¤³¤¹¡£¤Þ¤¿¡¢¥»¥°¥á¥ó¥È³°¤Î²¾ÁÛ¥á¥â¥ê¤Ë¥¢¥¯¥»¥¹¤·¤¿¾ì¹ç¤Ë¤â
90 ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¿¯³²¤¬È¯À¸¤¹¤ë¡£
91
92 .BR mremap ()
93 ¤Ï Linux ¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ëÊý¼°¤ò»ÈÍѤ¹¤ë¡£
94 .BR mremap ()
95 ¤Ï²¾ÁÛ¥¢¥É¥ì¥¹¤È¥á¥â¥ê¡¦¥Ú¡¼¥¸¤Î¥Þ¥Ã¥Ô¥ó¥°¤òÊѹ¹¤¹¤ë¡£¤³¤ì¤ÏÈó¾ï¤Ë¸úΨŪ¤Ê
96 .BR realloc (3)
97 ¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£
98
99 \fIflags\fP ¥Ó¥Ã¥È¥Þ¥¹¥¯°ú¿ô¤Ï 0 ¤Þ¤¿¤Ï°Ê²¼¤Î¥Õ¥é¥°¤ò´Þ¤à:
100 .TP
101 .B MREMAP_MAYMOVE
102 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¸½ºß¤Î°ÌÃ֤˥ޥåԥ󥰤ò³ÈÄ¥¤¹¤ë¤¿¤á¤Î
103 ½½Ê¬¤Ê¶õ¤­¤¬¤Ê¤±¤ì¤Ð
104 .BR mremap ()
105 ¤Ï¼ºÇÔ¤¹¤ë¡£
106 ¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥«¡¼¥Í¥ë¤ÏɬÍפ¬¤¢¤ì¤Ð¥Þ¥Ã¥Ô¥ó¥°¤ò
107 ¿·¤·¤¤²¾ÁÛ¥¢¥É¥ì¥¹¤ËºÆÇÛÃÖ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë
108 ¥Þ¥Ã¥Ô¥ó¥°¤¬ºÆÇÛÃÖ¤µ¤ì¤ë¤È¡¢¸Å¤¤¥Þ¥Ã¥Ô¥ó¥°°ÌÃ֤ؤÎÀäÂХݥ¤¥ó¥¿¤Ï
109 ̵¸ú¤Ë¤Ê¤ë (¥Þ¥Ã¥Ô¥ó¥°¤Î³«»Ï¥¢¥É¥ì¥¹¤«¤é¤ÎÁêÂÐ¥ª¥Õ¥»¥Ã¥È¤ÏÍ­¸ú¤Î¤Þ¤Þ¤Ç¤¢¤ë)¡£
110 .TP
111 .BR MREMAP_FIXED " (Linux 2.3.31 °Ê¹ß)"
112 ¤³¤Î¥Õ¥é¥°¤Ï
113 .BR mmap (2)
114 ¤Î
115 .B MAP_FIXED
116 ¥Õ¥é¥°¤È»÷¤¿¤è¤¦¤ÊÌÜŪ¤ÇÍѤ¤¤é¤ì¤ë¡£
117 ¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢
118 .BR mremap ()
119 ¤Ï 5 ÈÖÌܤΰú¤­¿ô
120 .I "void *new_address"
121 ¤ò¼õ¤±¼è¤ê¡¢¤³¤Î°ú¿ô¤Ï¥Þ¥Ã¥Ô¥ó¥°¤¬°ÜÆ°¤µ¤ì¤ë¤Ù¤­¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£
122 ¤³¤Î¥¢¥É¥ì¥¹¤Ï¥Ú¡¼¥¸¶­³¦¤Ë¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
123 .I new_address
124 ¤È
125 .I new_size
126 ¤Ç»ØÄꤵ¤ì¤ë¥¢¥É¥ì¥¹ÈϰϤ˲áµî¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬¤¢¤Ã¤¿¾ì¹ç¡¢
127 ¤½¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤ë (unmapped)¡£
128 .B MREMAP_FIXED
129 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢
130 .B MREMAP_MAYMOVE
131 ¤â»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
132 .PP
133 .I old_address
134 ¤È
135 .I old_size
136 ¤Ç»ØÄꤵ¤ì¤ë¥á¥â¥ê¥»¥°¥á¥ó¥È¤¬
137 .RB ( mlock (2)
138 ¤äƱÍͤΤâ¤Î¤Ç) ¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¤¬ÊѤï¤Ã¤¿¤ê
139 ºÆÇÛÃÖ¤µ¤ì¤¿¤ê¤·¤¿»þ¤Ë¥í¥Ã¥¯¤â°Ý»ý¤µ¤ì¤ë¡£
140 ¤½¤Î·ë²Ì¡¢¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤µ¤ì¤ë¥á¥â¥ê¤ÎÎ̤ÏÊѲ½¤¹¤ë¡£
141 .SH ÊÖ¤êÃÍ
142 À®¸ù¤·¤¿¾ì¹ç¤Ï
143 .BR mremap ()
144 ¤Ï¿·¤·¤¤²¾ÁÛ¥á¥â¥êÎΰè¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
145 ¥¨¥é¡¼¤Î¾ì¹ç¤Ï
146 .B MAP_FAILED
147 (¤¹¤Ê¤ï¤Á \fI(void\ *)\ \-1\fP) ¤¬ÊÖ¤µ¤ì¡¢
148 \fIerrno\fP ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
149 .SH ¥¨¥é¡¼
150 .TP
151 .B EAGAIN
152 ¸Æ¤Ó½Ð¤·¸µ¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥á¥â¥ê¥»¥°¥á¥ó¥È¤ò³ÈÄ¥¤·¤è¤¦¤È¤·¤¿¤¬¡¢
153 .B RLIMIT_MEMLOCK
154 ¥ê¥½¡¼¥¹À©¸Â¤ò±Û¤¨¤º¤Ë¤³¤ì¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£
155 .TP
156 .B EFAULT
157 ¡Ö¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿(segmentation fault)¡×
158 \fIold_address\fP ¤«¤é \fIold_address\fP+\fIold_size\fP ¤Î
159 ÈϰϤΥ¢¥É¥ì¥¹¤Î¤É¤ì¤«¤¬¤³¤Î¥×¥í¥»¥¹¤Ë¤ª¤¤¤ÆÉÔÀµ¤Ê²¾ÁÛ¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
160 ¤¿¤È¤¨Í׵ᤷ¤¿¥¢¥É¥ì¥¹¶õ´ÖÁ´ÂΤò´Þ¤à¤è¤¦¤Ê¥Þ¥Ã¥Ô¥ó¥°¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢
161 ¤½¤ì¤é¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬°Û¤Ê¤Ã¤¿·¿¤Ê¤é¤Ð
162 .B EFAULT
163 ¤ò¼õ¤±¼è¤ë¤À¤í¤¦¡£
164 .TP
165 .B EINVAL
166 ÉÔÀµ¤Ê°ú¤­¿ô¤¬Í¿¤¨¤é¤ì¤¿¡£
167 ²ÄǽÀ­¤Î¤¢¤ë¸¶°ø¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë:
168 ¤¿¤¤¤Æ¤¤¤Ï \fIold_address\fP ¤¬¥Ú¡¼¥¸¶­³¦¤Ë
169 ¹ç¤Ã¤Æ¤Ê¤¤;
170 .I flags
171 ¤Ë
172 .B MREMAP_MAYMOVE
173 ¤Þ¤¿¤Ï
174 .B MREMAP_FIXED
175 °Ê³°¤ÎÃͤ¬»ØÄꤵ¤ì¤Æ¤¤¤ë;
176 .I new_size
177 ¤¬¥¼¥í;
178 .I new_size
179 ¤Þ¤¿¤Ï
180 .I new_address
181 ¤ÎÃͤ¬ÉÔÀµ;
182 .I new_address
183 ¤È
184 .I new_size
185 ¤Ç»ØÄꤵ¤ì¤ë¿·¤·¤¤¥¢¥É¥ì¥¹ÈϰϤ¬
186 .I old_address
187 ¤È
188 .I old_size
189 ¤Ç»ØÄꤵ¤ì¤ë¸Å¤¤¥¢¥É¥ì¥¹ÈϰϤȽŤʤäƤ¤¤ë;
190 .B MREMAP_FIXED
191 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬
192 .B MREMAP_MAYMOVE
193 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
194 .TP
195 .B ENOMEM
196 ¸½ºß¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤Ç¤Ï¥á¥â¥êÎΰ褬³ÈÄ¥¤Ç¤­¤º¡¢
197 .B MREMAP_MAYMOVE
198 ¥Õ¥é¥°¤¬ \fIflags\fP ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
199 ¤Þ¤¿¤Ï½½Ê¬¤Ê (²¾ÁÛ) ¥á¥â¥ê¤¬Â¸ºß¤·¤Ê¤¤¡£
200 .SH ½àµò
201 ¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç
202 »ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£
203 .\" 4.2BSD ¤Ë¤Ï (¼ÂºÝ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤¬)
204 .\" Á´¤¯°Û¤Ã¤¿Êý¼° (semantics) ¤Ë¤è¤ë
205 .\" .BR mremap (2)
206 .\" ¥³¡¼¥ë¤¬¤¢¤Ã¤¿¡£
207 .\" FIXME perhaps remove above statement about 4.2BSD.
208 .SH Ãí°Õ
209 ¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï¡¢
210 .B MREMAP_FIXED
211 ¤ÎÄêµÁ¤Ï¸ø³«¤µ¤ì¤Æ¤ª¤é¤º¡¢
212 .BR mremap ()
213 ¤Î¥×¥í¥È¥¿¥¤¥×¤Ï
214 .I new_address
215 °ú¤­¿ô¤ò¼è¤é¤Ê¤«¤Ã¤¿¡£
216 .SH ´ØÏ¢¹àÌÜ
217 .BR brk (2),
218 .BR getpagesize (2),
219 .BR getrlimit (2),
220 .BR mlock (2),
221 .BR mmap (2),
222 .BR sbrk (2),
223 .BR realloc (3),
224 .BR malloc (3)
225 .P
226 ¥Ú¡¼¥¸Ê¬³ä¤µ¤ì¤¿¥á¥â¥ê¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È¾Ü¤·¤¯ÃΤꤿ¤¤¤Ê¤é¤Ð
227 ¤¢¤Ê¤¿¤Î¹¥¤ß¤Î OS ¤Î¶µ²Ê½ñ¤ò»²¾È¤¹¤ë¤³¤È¡£
228 (\fIModern Operating Systems\fP by Andrew S. Tannenbaum,
229 \fIInside Linux\fP by Randolf Bentson,
230 \fIThe Design of the UNIX Operating System\fP by Maurice J. Bach.)