MREMAP

Section: ¸®´ª½º ÇÁ·Î±×·¡¸Ó ¸Å´º¾ó (2)
Updated: 1996³â 4¿ù 12ÀÏ
Index
Return to Main Contents
 

À̸§

mremap - °¡»ó ¸Þ¸ð¸® ÁÖ¼Ò¸¦ Àç´ëÀÀ½ÃŲ´Ù.  

»ç¿ë¹ý

#include <unistd.h>
#include <sys/mman.h>

void * mremap(void * old_address, size_t old_size , size_t new_size, unsigned long flags);  

¼³¸í

mremap ´Â Á¸ÀçÇÏ´Â ¸Þ¸ð¸® ´ëÀÀÀ» È®Àå(¶Ç´Â Ãà¼Ò)Çϸç, µ¿½Ã¿¡ ³»ºÎÀûÀ¸·Î ±× ´ëÀÀÀ» À̵¿½ÃŲ´Ù (flagsÀÎÀÚ¿Í ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °¡»ó ÁÖ¼Ò °ø°£¿¡ ÀÇÇØ Á¦¾îµÈ´Ù).

old_address´Â È®Àå(¶Ç´Â Ãà¼Ò)Çϱ⸦ ¿øÇÏ´Â °¡»ó ¸Þ¸ð¸® ºí·°ÀÇ ¿¹Àü ÁÖ¼ÒÀÌ´Ù. old_address´Â ÆäÀÌÁö Á¤·ÄÀÌ µÇÀÖ¾î¾ß ÇÑ´Ù. old_size´Â °¡»ó ¸Þ¸ð¸® ºí·°ÀÇ ¿¹Àü Å©±âÀÌ´Ù. new_size´Â ¹Ù²Ù·ÁÇÏ´Â »õ·Î¿î °¡»ó ¸Þ¸ð¸® ºí·°ÀÇ Å©±âÀÌ´Ù.

flagsÀÎÀÚ´Â Ç÷¡±×ÀÇ ºñÆ®¸ÊÀÌ´Ù.

¸®´ª½º¿¡¼­ ¸Þ¸ð¸®´Â ÆäÀÌÁö·Î ³ª´©¾î Áø´Ù. »ç¿ëÀÚ ÇÁ·Î¼¼½º´Â (Çϳª ¶Ç´Â) ¿©·¯ °³ÀÇ ¼±Çü °¡»ó ¸Þ¸ð¸® ¼¼±×¸ÕÆ®µéÀ» °¡Áö°í ÀÖ´Ù. °¢°¢ÀÇ °¡»ó ¸Þ¸ð¸® ¼¼±×¸ÕÆ®´Â Çϳª ¶Ç´Â ¿©·¯ °³ÀÇ ½ÇÁ¦ ¸Þ¸ð¸® ÆäÀÌÁö·Î (ÆäÀÌÁö Å×ÀÌºí ³») ´ëÀÀµÈ´Ù. °¢°¢ÀÇ °¡»ó ¸Þ¸ð¸® ¼¼±×¸ÕÆ®´Â À߸øµÈ ¸Þ¸ð¸®¿¡ Á¢±ÙµÇ¸é ¼¼±×¸ÕÆ® À§¹ÝÀ» ¹ß»ý½ÃÅ°´Â (Áï, Àбâ Àü¿ë ¼¼±×¸ÕÆ®¿¡ ¾²±â¸¦ ÇÒ ¶§) ÀڽŸ¸ÀÇ º¸È£ ¸ðµå(Á¢±Ù ±ÇÇÑ)¸¦ °¡Áö°í ÀÖ´Ù.

¼¼±×¸ÕÆ® ¿µ¿ª ¿ÜÀÇ °¡»ó ¸Þ¸ð¸® Á¢±Ù ¶ÇÇÑ ¼¼±×¸ÕÆ® À§¹ÝÀ» ¹ß»ý½ÃŲ´Ù.

mremap´Â ¸®´ª½º ÆäÀÌÁö ±¸Á¶¸¦ »ç¿ëÇÑ´Ù. mremap´Â °¡»ó ÁÖ¼Ò¿Í ¸Þ¸ð¸® ÆäÀÌÁö »çÀÌÀÇ ´ëÀÀÀ» ¹Ù²Û´Ù. ÀÌ°ÍÀº reallocÀ» ¸Å¿ì È¿À²ÀûÀ¸·Î ¼öÇàÇϱâ À§ÇØ »ç¿ëµÉ ¼ö ÀÖ´Ù.

 

Ç÷¡±×

MREMAP_MAYMOVE
¿¬»êÀÌ ½ÇÆÐÇϸé, ÇöÀç °¡»ó ÁÖ¼Ò¿¡ ´ëÇÑ Å©±â º¯°æÀÌ ºÒ°¡´ÉÇÑ °æ¿ì °¡»ó ÁÖ¼Ò¸¦ ¹Ù²Ùµµ·Ï ÁöÁ¤ÇÑ´Ù.

 

¹Ýȯ°ª

¼º°ø½Ã, mremap´Â »õ·Î¿î °¡»ó ¸Þ¸ð¸® ¿µ¿ª¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¹ÝȯÇÑ´Ù. ¿¡·¯½Ã, -1ÀÌ ¹ÝȯµÇ¸ç,errno´Â Àû´çÇÑ °ªÀ¸·Î ¼³Á¤µÈ´Ù.

 

¿¡·¯

EINVAL
À¯È¿ÇÏÁö ¾ÊÀº ÀÎÀÚ°¡ ÁÖ¾îÁ³´Ù. ´ëºÎºÐ old_address°¡ ÆäÀÌÁö Á¤·Ä µÇÀÖÁö ¾ÊÀº °æ¿ìÀÌ´Ù.
EFAULT
"Segmentation fault" old_address¿¡¼­ old_address+old_size ¹üÀ§ÀÇ ÀÏÁ¤ ÁÖ¼Ò°¡ ÀÌ ÇÁ·Î¼¼½º¸¦ À§ÇÑ À¯È¿ÇÑ °¡»ó ¸Þ¸ð¸® ÁÖ¼Ò°¡ ¾Æ´Ï´Ù. ºñ·Ï ¿äûµÈ Àüü ÁÖ¼Ò °ø°£À» Æ÷ÇÔÇÏ´Â ´ëÀÀÀÌ ÀÖÀ» Áö¶óµµ »ç¿ëÀÚ´Â EFAULT¸¦ ¹ÞÀ» ¼ö ÀÖÀ¸¸ç, ÀÌ·± ´ëÀÀÀº ´Ù¸¥ ŸÀÔÀÇ °ÍÀÌ´Ù.
EAGAIN
¸Þ¸ð¸® ¼¼±×¸ÕÆ®°¡ Àá°ÜÁ® ÀÖ¾î ´Ù½Ã ´ëÀÀ½Ãų ¼ö ¾ø´Ù.
ENOMEM
¸Þ¸ð¸® ¿µ¿ªÀÌ ÇöÀç °¡»ó ÁÖ¼Ò·Î È®ÀåµÉ ¼ö ¾øÀ¸¸ç, MREMAP_MAYMOVE Ç÷¡±×°¡ flags¿¡ ¼³Á¤µÇÀÖÁö ¾Ê´Ù. ¶Ç´Â, ÀÌ¿ëÇÒ ¼ö ÀÖ´Â (°¡»ó) ¸Þ¸ð¸®°¡ ÃæºÐÇÏÁö ¾Ê´Ù.
 

ȣȯ

ÀÌ ½Ã½ºÅÛ ÄÝÀº ¸®´ª½º¿¡ ÇÑÁ¤ÀûÀ̸ç, ȣȯ¼ºÀ» ¿°µÎ¿¡ µÐ ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇؼ­´Â ¾ÈµÈ´Ù. 4.2BSD´Â ¿ÏÀüÈ÷ ´Ù¸¥ ÀǹÌÀÇ mremap(2) ½Ã½ºÅÛ ÄÝ(½ÇÁ¦·Î ±¸ÇöµÇÁö ¾ÊÀ½)ÀÌ ÀÖ´Ù.  

°ü·Ã Ç׸ñ

getpagesize(2), realloc(3), malloc(3), brk(2), sbrk(2), mmap(2) ¸Þ¸ð¸® ÆäÀÌÁö¿¡ °üÇÑ ´õ ¸¹Àº Á¤º¸´Â ÁÁ¾ÆÇÏ´Â OS ±³À縦 Âü°íÇ϶ó> (Andrew S. TannenbaumÀÇ Modern Operating Systems, Randolf BentsonÀÇ Inside Linux, Maurice J. BachÀÇ The Design of the UNIX Operating System.)  

¿ªÀÚ

Á¤°­ÈÆ <skyeyes@soback.kornet.net>, 2000³â 5¿ù 15ÀÏ


 

Index

À̸§
»ç¿ë¹ý
¼³¸í
Ç÷¡±×
¹Ýȯ°ª
¿¡·¯
ȣȯ
°ü·Ã Ç׸ñ
¿ªÀÚ

This document was created by man2html, using the manual pages.
Time: 08:07:01 GMT, March 25, 2004