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