SHMOP

Section: ¸®´ª½º ÇÁ·Î±×·¡¸Ó ¸Þ´º¾ó (2)
Updated: November 28, 1993
Index
Return to Main Contents
 

À̸§

shmop - °øÀ¯ ¸Þ¸ð¸® ÀÛµ¿µé  

»ç¿ë¹ý

# include <sys/types.h>
# include <sys/shm.h>

void *shmat ( int shmid, const void *shmaddr, int shmflg )

int shmdt ( const void *shmaddr)  

¼³¸í

shmat ÇÔ¼ö´Â shmid ·Î ½Äº°µÇ´Â °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®¸¦ È£Ãâ ÇÁ·Î¼¼½ºÀÇ µ¥ÀÌÅÍ ¼¼±×¸ÕÆ®¿¡ ¿¬°áÇÑ´Ù. ¿¬°áµÉ ÁÖ¼Ò´Â ´ÙÀ½ Á¶°ÇÁß ÇϳªÀÇ shmaddr ·Î ÁöÁ¤µÈ´Ù.
If shmaddr °¡ 0 À̸é, ½Ã½ºÅÛÀº 1 - 1.5G»çÀÌÀÇ ¿µ¿ª¿¡¼­ »óÀ§¿¡¼­ºÎÅÍ ÇÏÀ§·Î ´ëÀÀµÇÁö ¾ÊÀº ¿µ¿ªÀ» ã´Â´Ù.
shmaddr °¡ 0 ÀÌ ¾Æ´Ï°í SHM_RND °¡ shmflg ¿¡ ÁöÁ¤µÇ¾î ÀÖÀ¸¸é, shmaddr °¡ SHMLBA ÀÇ ¹è¼öÀÇ ÁÖ¼Ò·Î ¿¬°áÀÌ ¹ß»ýÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é shmaddr ´Â ¿¬°áÇÒ¼ö ÀÖ´Â Á¤·ÄµÈ ÆäÀÌÁö ÁÖ¼ÒÀ̾î¾ß ÇÑ´Ù.

¸¸ÀÏ SHM_RDONLY °¡ shmflg ¿¡ ÁöÁ¤µÇ¸é, ÀÌ ¼¼±×¸ÕÆ®´Â ÀбâÀü¿ëÀ¸·Î ¿¬°áµÇ¸ç ÇÁ·Î¼¼½º´Â ¼¼±×¸ÕÆ®¿¡ Àбâ Á¢±Ù Çã°¡±ÇÀ» °¡Á®¾ß¸¸ ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¼¼±×¸ÕÆ®´Â Àбâ-¾²±â·Î ¿¬°áµÇ¸ç ÇÁ·Î¼¼½º´Â ¼¼±×¸ÕÆ®¿¡ Àбâ-¾²±â Á¢±Ù Çã°¡±ÇµéÀ» °¡Á®¾ß¸¸ ÇÑ´Ù. ¾²±âÀü¿ë °øÀ¯¸Þ¸ð¸® ¼¼±×¸ÕÆ®¿¡ ´ëÇÑ Ç¥½Ã´Â ¾ø´Ù.

È£Ãâ ÇÁ·Î¼¼½ºÀÇ brk °ªÀº ¿¬°á½Ã ¹Ù²î¾îÁöÁö ¾Ê´Â´Ù. ¼¼±×¸ÕÆ®´Â ÇÁ·Î¼¼½º°¡ Á¾·áÇÒ¶§ ÀÚµ¿ÀûÀ¸·Î ºÐ¸®µÈ´Ù. °°Àº ¼¼±×¸ÕÆ®´Â ±× ÇÁ·Î¼¼½º ÁÖ¼Ò °ø°£¿¡¼­ Àбâ Àü¿ëÀ¸·Î, Àбâ-¾²±â·Î, Çѹø ÀÌ»ó ¿¬°áµÉ¼ö ÀÖ´Ù.

¼º°ø½Ã shmat ½Ã½ºÅÛ ÄÝÀº °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®¿¡¼­ ´ÙÀ½°ú °°Àº shmid_ds ±¸Á¶Ã¼ ¸â¹öµéÀ» °»½ÅÇÑ´Ù.

shm_atime ´Â ÇöÀç ½Ã°£À¸·Î ¼³Á¤µÈ´Ù.
shm_lpid ´Â È£Ãâ ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º-ID·Î ¼³Á¤µÈ´Ù.
shm_nattch ´Â 1 Áõ°¡ÇÑ´Ù.

°øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®°¡ »èÁ¦·Î¼­ Ç¥½ÃµÉ °æ¿ìµµ ¿ª½Ã ºÐ¸® µÈ´Ù.

ÇÔ¼ö shmdt ´Â È£Ãâ ÇÁ·Î¼¼½ºÀÇ µ¥ÀÌŸ ¼¼±×¸ÕÆ®¿¡¼­ shmaddr ·Î ÁöÁ¤µÈ ÁÖ¼Ò¿¡ À§Ä¡ÇÑ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®¸¦ ºÐ¸®ÇÑ´Ù. °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®ÀÇ ºÐ¸®´Â shmat ½Ã±×ÅÛ ÄÝ·Î ¿¬°áµÈ °ª°ú °°Àº shmaddr ¸¦ °¡Áö°í ÀÖ´Â ÇöÀç ¿¬°áµÈ ¼¼±×¸ÕÆ®µéÁß Çϳª(ÇÁ·Î¼¼½ºÀÇ ÁÖ¼Ò °ø°£)À̾î¾ß ÇÑ´Ù.

¼º°ø½Ã, shmdt ½Ã½ºÅÛ ÄÝÀº °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®¿¡¼­ ´ÙÀ½°ú °°Àº shmid_ds ±¸Á¶Ã¼ ¸â¹öµéÀ» °»½ÅÇÑ´Ù.

shm_dtime ´Â ÇöÀç ½Ã°£À¸·Î ¼³Á¤µÈ´Ù.
shm_lpid ´Â È£Ãâ ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º-ID·Î ¼³Á¤µÈ´Ù.
shm_nattch ´Â 1 °¨¼ÒÇÑ´Ù. ¸¸ÀÏ 0ÀÌ°í ¼¼±×¸ÕÆ®°¡ »èÁ¦ Ç¥½ÃµÇ¾î ÀÖµå¸é ¼¼±×¸ÕÆ®´Â »èÁ¦µÈ´Ù.

È£Ãâ ÇÁ·Î¼¼½ºÀÇ À¯Àú °ø°£¿¡ Á¡À¯µÈ ¿µ¿ªÀº ´ëÀÀÀÌ Ç®¸®Áö ¾Ê´Â´Ù.

 

SYSTEM CALLS

fork()
fork() ÈÄ¿¡ ÀÚ½Ä ÇÁ·Î¼¼½º´Â ¿¬°áµÈ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®µéÀ» »ó¼ÓÇÑ´Ù.
exec()
exec() ÈÄ¿¡ ¸ðµç ¿¬°áµÈ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®µéÀº ºÐ¸®µÈ´Ù.(Æı«µÇ´Â°ÍÀÌ ¾Æ´Ï´Ù.)
exit()
exit() ½Ã ¸ðµç ¿¬°áµÈ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®´Â ºÐ¸®µÈ´Ù.(Æı«µÇ´Â °ÍÀÌ ¾Æ´Ï´Ù.)

 

¹Ýȯ°ª

½ÇÆнà µÎ ÇÔ¼ö´Â ¸ðµÎ ¿¡·¯¸¦ °¡¸®Å°´Â errno ¿Í -1 ¸¦ ¸®ÅÏÇÏ¸ç ±×·¸Áö ¾ÊÀ¸¸é shmat ´Â ¿¬°áµÈ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®ÀÇ ÁÖ¼Ò¸¦ ¸®ÅÏÇÑ´Ù. ±×¸®°í shmdt ´Â 0 ¸¦ ¸®ÅÏÇÑ´Ù.  

¿¡·¯

shmat °¡ ½ÇÆÐÇÒ¶§, ¸®ÅϵǴ errno ´Â ´ÙÀ½°ªÁß Çϳª·Î ¼³Á¤µÈ´Ù.
EACCES
È£Ãâ ÇÁ·Î¼¼½º´Â ¿ä±¸µÈ ¿¬°á ŸÀÔ¿¡ ´ëÇÑ Á¢±Ù Çã°¡±ÇµéÀÌ ¾ø´Ù.
EINVAL
À¯È¿ÇÏÁö ¾ÊÀº shmid °ª, Á¤·ÄµÇÁö ¾ÊÀº(Áï, ÆäÀÌÁö Á¤·ÄÀÌ ¾Æ´Ï°í SHM_RND°¡ ÁöÁ¤µÇÁö ¾Ê¾Ò´Ù.) ¶Ç´Â À¯È¿ÇÏÁö ¾ÊÀº shmaddr °ª, ¶Ç´Â brk ¿¡ ¿¬°á ½ÇÆÐ
ENOMEM
±â¼úÀÚ³ª ÆäÀÌÁö Å×À̺íµéÀ» À§ÇØ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ¼ö ¾ø´Ù.

shmaddr ¿¡ ¿¬°áµÈ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®°¡ ¾ø´Ù¸é ÇÔ¼ö shmdt ´Â ½ÇÆÐÇÒ¼ö ÀÖ´Ù. ÀÌ°æ¿ì ¸®ÅϵǴ errno ´Â EINVAL À¸·Î ¼³Á¤µÉ °ÍÀÌ´Ù.  

ÁÖÀÇ

fork(2) ½Ã½ºÅÛ ÄÝ ½ÇÇà½Ã ÀÚ½Ä ÇÁ·Î¼¼½º´Â ¿¬°áµÈ ¸ðµç °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®µÑÀ» »ó¼ÓÇÑ´Ù.

execve(2) ·Î ½ÇÇàµÇ´Â ÇÁ·Î¼¼½º¿¡ ¿¬°áµÈ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®µéÀº °á°ú ÇÁ·Î¼¼½º¿¡ ¿¬°áµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.

´ÙÀ½Àº shmat ½Ã½ºÅÛ ÄÝ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ½Ã½ºÅÛ ÀÎÀÚÀÌ´Ù:

SHMLBA
Segment low boundary address multiple. ÆäÀÌÁöµéÀº Á¤·ÄµÇ¾î¾ß ÇÑ´Ù. ÇöÀç ¼öÇà½Ã SHMBLA °ªÀº PAGE_SIZE ÀÌ´Ù.

¼öÇà½Ã ÇÁ·Î¼¼½º´ç °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ® ÃÖ´ë¼ö¿¡ ¾î¶°ÇÑ ³»ºÎ Á¦Çѵµ ¾ø´Ù. (SHMSEG)  

ȣȯ

SVr4, SVID. SVr4´Â EMFILE ¿¡·¯ Á¶°ÇÀ» ¹®¼­È­Çß´Ù. SVID-v4¿¡¼­ shmaddr ÀÎÀÚ´Â char * ¿¡¼­ const void * ·Î ¹Ù²î¾úÀ¸¸ç shmat()ÀÇ ¸®ÅÏ Å¸ÀÔÀº char * ¿¡¼­ void * À¸·Î ¹Ù²î¾ú´Ù. (Linux libc4 ¿Í libc5´Â char * ŸÀÔÀ» °¡Áö°í ÀÖ´Ù.; glibc2´Â void * À» °¡Áö°í ÀÖ´Ù.)  

°ü·Ã Ç׸ñ

ipc(5), shmctl(2), shmget(2)  

¿ªÀÚ

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


 

Index

À̸§
»ç¿ë¹ý
¼³¸í
SYSTEM CALLS
¹Ýȯ°ª
¿¡·¯
ÁÖÀÇ
ȣȯ
°ü·Ã Ç׸ñ
¿ªÀÚ

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