SHMGET
Section: ¸®´ª½º ÇÁ·Î±×·¡¸Ó ¸Þ´º¾ó (2)
Updated: November 28, 1993
Index
Return to Main Contents
À̸§
shmget - °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®¸¦ ÇÒ´çÇÑ´Ù.
»ç¿ë¹ý
#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, int size, int shmflg);
¼³¸í
shmget()
´Â
key
ÀÎÀÚ°ª°ú °ü·ÃµÈ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ® ½Äº°ÀÚ¸¦ ¹ÝȯÇÑ´Ù.
¸¸ÀÏ,
key
°¡
IPC_PRIVATE
°ªÀ» °¡Áö°í Àְųª ¶Ç´Â
key
°¡
IPC_PRIVATE
°¡ ¾Æ´Ï°í,
key
¿Í ¿¬°èµÇ¾î ÀÖ´Â °øÀ¯¸Þ¸ð¸® ¼¼±×¸ÕÆ®°¡ ¾ø´Ù¸é
PAGE_SIZE
ÀÇ ¹è¼ö¸¸ÅÀÇ
size
¸¦ °¡Áö°í ÀÖ´Â »õ·Î¿î °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®°¡ ¸¸µé¾îÁø´Ù.
IPC_CREAT
´Â
shmflg
¿¡ ¸í½ÃµÇ¾î ÀÖ´Ù.
(Áï,
shmflg&IPC_CREAT
´Â 0ÀÌ ¾Æ´Ï´Ù.)
shmflg
ÀÇ ±¸¼ºÀº ´ÙÀ½°ú °°´Ù:
- IPC_CREAT
-
»õ·Î¿î ¼¼±×¸ÕÆ®¸¦ ¸¸µç´Ù. ¸¸ÀÏ ÀÌ Ç÷¡±×°¡ »ç¿ëµÇÁö ¾Ê´Â´Ù¸é,
shmget()
´Â key¿Í °ü·ÃµÈ ¼¼±×¸ÕÆ®¸¦ ãÀ» °ÍÀ̸ç,
»ç¿ëÀÚ°¡ ±× ¼¼±×¸ÕÆ®¿Í °ü·ÃµÈ shmid ¸¦ ¹ÞÀ»
Çã°¡±ÇÀÌ ÀÖ´ÂÁö ¾Ë±â À§Çؼ °Ë»çÇÑ´Ù.
±×¸®°í ¼¼±×¸ÕÆ®°¡ Æı«µÇ¾ú´Ù´Â Ç¥½Ã¸¦ ÇÏÁö ¾Êµµ·Ï º¸ÀåÇÑ´Ù.
- IPC_EXCL
-
¼¼±×¸ÕÆ®°¡ Á¸ÀçÇÒ°æ¿ì ½ÇÆи¦ º¸ÀåÇϱâ À§ÇØ IPC_CREAT¿Í ÇÔ²²
»ç¿ëµÈ´Ù.
- mode_flags (lowest 9 bits)
-
¼ÒÀ¯ÀÚ, ±×·ì, ±× ¿ÜµéÀ» º¸ÀåÇϱâ À§ÇØ Çã°¡±ÇÀ» ÁöÁ¤ÇÑ´Ù.
ÇöÀç, ½ÇÇà Çã°¡±ÇÀº ½Ã½ºÅÛ¿¡ ÀÇÇØ »ç¿ëµÇÁö ¾Ê´Â´Ù.
»õ·Î¿î ¼¼±×¸ÕÆ®°¡ »ý¼ºµÈ´Ù¸é,
shmflg
ÀÇ Á¢±Ù Çã°¡±ÇÀº
¼¼±×¸ÕÆ®¿¡ Á¤ÀǵǾî ÀÖ´Â
shmid_ds
ÀÇ
shm_perm
¸â¹ö·Î º¹»çµÈ´Ù.
shmid_ds ±¸Á¶Ã¼:
struct shmid_ds {
struct ipc_perm shm_perm; /* ÆÛ¹Ì¼Ç */
int shm_segsz; /* ¼¼±×¸ÕÆ®ÀÇ Å©±â(bytes) */
time_t shm_atime; /* ¸¶Áö¸· Á¢±Ù ½Ã°£ */
time_t shm_dtime; /* ¸¶Áö¸· Á¦°Å ½Ã°£ */
time_t shm_ctime; /* ¸¶Áö¸· º¯°æ ½Ã°£ */
unsigned short shm_cpid; /* »ý¼ºÀÚÀÇ pid */
unsigned short shm_lpid; /* ¸¶Áö¸·À¸·Î ÀÛµ¿ÇÑ ÇÁ·Î¼¼½º pid */
short shm_nattch; /* ÇöÀç Á¢±ÙÇÑ ÇÁ·Î¼¼½ºÀÇ ¼ö */
};
struct ipc_perm
{
key_t key;
ushort uid; /* ¼ÒÀ¯ÀÚÀÇ euid ¿Í egid */
ushort gid;
ushort cuid; /* »ý¼ºÀÚÀÇ euid ¿Í egid */
ushort cgid;
ushort mode; /* shmflgÀÇ ÇÏÀ§ 9ºñÆ® */
ushort seq; /* ¿¬¼Ó ¼ö(sequence number) */
};
°Ô´Ù°¡, »ý¼ºµÇ´Â µ¿¾È ½Ã½ºÅÛ ÄÝÀº ½Ã½ºÅÛ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ® µ¥ÀÌÅÍ ±¸Á¶
shmid_ds
¸¦ ´ÙÀ½°ú °°ÀÌ ÃʱâÈÇÑ´Ù.
-
shm_perm.cuid
¿Í
shm_perm.uid
´Â È£Ãâ ÇÁ·Î¼¼½ºÀÇ À¯È¿ user-ID·Î ¼³Á¤µÈ´Ù.
-
shm_perm.cgid
¿Í
shm_perm.gid
´Â È£Ãâ ÇÁ·Î¼¼½ºÀÇ À¯È¿ group-ID·Î ¼³Á¤µÈ´Ù.
-
shm_perm.mode
ÀÇ ÇÏÀ§ 9ºñÆ®µéÀº
shmflg
ÀÇ ÇÏÀ§ 9ºñÆ®µé·Î ¼³Á¤µÈ´Ù.
-
shm_segsz
´Â
size
°ªÀ¸·Î ¼³Á¤µÈ´Ù.
-
shm_lpid,
shm_nattch,
shm_atime
±×¸®°í
shm_dtime
´Â
0
À¸·Î ¼³Á¤µÈ´Ù.
-
shm_ctime
´Â ÇöÀç ½Ã°£À¸·Î ¼³Á¤µÈ´Ù.
¸¸ÀÏ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®°¡ ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é, Á¢±Ù Çã°¡±ÇÀÌ Á¶»çµÇ¸ç,
Æı«µµµµ·Ï Ç¥½ÃµÇ¾î ÀÖ´ÂÁö ¾Ë¾Æº¸±â À§ÇØ °Ë»çÇÑ´Ù.
SYSTEM CALLS
- fork()
-
fork()
ÈÄ¿¡ ÀÚ½Ä ÇÁ·Î¼¼½º´Â ¿¬°áµÈ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®µéÀ» »ó¼ÓÇÑ´Ù.
- exec()
-
exec()
ÈÄ¿¡ ¿¬°áµÈ ¸ðµç °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®´Â ºÐ¸®µÈ´Ù.(Æı«µÇ´Â°ÍÀÌ ¾Æ´Ï´Ù)
- exit()
-
exit()
½Ã ¿¬°áµÈ ¸ðµç °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®´Â ºÐ¸®µÈ´Ù.(Æı«µÇ´Â°ÍÀÌ ¾Æ´Ï´Ù)
¹Ýȯ°ª
¼º°ø½Ã À¯È¿ÇÑ ¼¼±×¸ÕÆ® ½Äº°ÀÚ
shmid
°¡ ¹ÝȯµÇ¸ç, ¿¡·¯½Ã -1ÀÌ ¹ÝȯµÈ´Ù.
¿¡·¯
½ÇÆнÃ,
errno
´Â ´ÙÀ½Áß Çϳª·Î ¼³Á¤µÈ´Ù:
- EINVAL
-
¸¸ÀÏ SHMMIN > size, ¶Ç´Â
size > SHMMAX, ¶Ç´Â sizeÀÌ ¼¼±×¸ÕÆ®ÀÇ Å©±âº¸´Ù Å©´Ù¸é ÀÌ
¿¡·¯°¡ ¹ÝȯµÈ´Ù.
- EEXIST
-
IPC_CREAT | IPC_EXCL
ÀÌ ÁöÁ¤µÇ¾î ÀÖ°í, ¼¼±×¸ÕÆ®°¡ Á¸ÀçÇϸé ÀÌ ¿¡·¯°¡ ¹ÝȯµÈ´Ù.
- EIDRM
-
¼¼±×¸ÕÆ®°¡ Æı«³ª Á¦°ÅµÇµµ·Ï Ç¥½ÃµÇ¾î ÀÖ´Ù¸é ÀÌ ¿¡·¯°¡ ¹ÝȯµÈ´Ù.
- ENOSPC
-
°¡´ÉÇÑ ¸ðµç °øÀ¯ ¸Þ¸ð¸® id
(SHMMNI)
¸¦ °¡Á³°Å³ª ¿äûµÈ
size
ÀÇ ¼¼±×¸ÕÆ® ÇÒ´çÀÌ ½Ã½ºÅÛ Àüü °øÀ¯ ¸Þ¸ð¸® Á¦ÇÑ°ª
(SHMALL)
À» ÃÊ°úÇÒ°æ¿ì ¹ÝȯµÈ´Ù.
- ENOENT
-
ÁÖ¾îÁø key¿¡ ÇØ´çÇÏ´Â ¼¼±×¸ÕÆ®°¡ Á¸ÀçÇÏÁö ¾Ê°í,
IPC_CREAT
°¡ ÁöÁ¤µÇÁö ¾Ê¾Ò´Ù¸é ¹ÝȯµÈ´Ù.
- EACCES
-
»ç¿ëÀÚ°¡ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®¿¡ ´ëÇÑ Á¢±Ù Çã°¡±ÇÀÌ ¾øÀ»¶§ ¹ÝȯµÈ´Ù.
- ENOMEM
-
¼¼±×¸ÕÆ®¸¦ À§ÇØ ÇÒ´çÇÒ ¸Þ¸ð¸®°¡ ¾øÀ»¶§ ¹ÝȯµÈ´Ù.
ÁÖÀÇ
IPC_PRIVATE
´Â Ç÷¹±× Çʵ尡 ¾Æ´Ï¶ó
key_t
ŸÀÔÀÌ´Ù.
ÀÌ Æ¯º°ÇÑ °ªÀÌ
key
¿¡ »ç¿ëµÈ´Ù¸é,
½Ã½ºÅÛ ÄÝÀº
shmflg
ÀÇ ÇÏÀ§ 9ºñÆ®µé¿Ü ¸ðµç°ÍÀ» ¹«½ÃÇÑ´Ù.
±×¸®°í »õ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®¸¦ »ý¼º(¼º°ø½Ã)ÇÑ´Ù.
´ÙÀ½Àº
shmget
½Ã½ºÅÛ ÄÝ¿¡ ¿µÇâÀ» ÁÖ´Â °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ® ÀÚ¿øµéÀÇ Á¦ÇÑ°ªµéÀÌ´Ù:
- SHMALL
-
½Ã½ºÅÛ ÀüüÀÇ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ® ÃÖ´ë °ª: Á¤Ã¥ ÀÇÁ¸ÀûÀÌ´Ù.
- SHMMAX
-
°øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®ÀÇ ÃÖ´ë Å©±â(¹ÙÀÌÆ®¼ö): ¼öÇà ÀÇÁ¸ÀûÀÌ´Ù.(ÇöÀç 4M)
- SHMMIN
-
°øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®ÀÇ ÃÖ¼Ò Å©±â(¹ÙÀÌÆ®¼ö): ¼öÇà ÀÇÁ¸ÀûÀÌ´Ù.(
PAGE_SIZE
°¡ À¯È¿ÇÑ ÃÖ¼Ò Å©±âÀÌÁö¸¸, ÇöÀç´Â 1byteÀÌ´Ù.)
- SHMMNI
-
½Ã½ºÅÛ ÀüüÀÇ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ® ÃÖ´ë ¼ö: ¼öÇà ÀÇÁ¸ÀûÀÌ´Ù(ÇöÀç 4096)
¼öÇà½Ã ÇÁ·Î¼¼½º´ç °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®ÀÇ Æ¯º°ÇÑ Á¦ÇÑÀº ¾ø´Ù.
(SHMSEG)
¹ö±×
IPC_PRIVATE
¸¦ »ç¿ëÇϸé ÇÒ´çµÈ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®¸¦ Á¢±ÙÇÏ´Â ´Ù¸¥ ÇÁ·Î¼¼½ºµéÀ» ÀúÁöÇÏÁö
¾Ê´Â´Ù.
ÆÄÀÏµé ¶§¹®¿¡, ÇÁ·Î¼¼½º¸¦ À§ÇØ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ®¿¡ ´ëÇÑ ¹èŸÀû Á¢±ÙÀ»
º¸ÀåÇϱâ À§ÇÑ ¹æ¹ýÀÌ ÇöÀç´Â ¾ø´Ù.
shmflg
ºñÆ®¿¡
IPC_CREAT
¿Í
IPC_EXCL
ÀÇ ÁöÁ¤¸¸ÀÌ »õ °øÀ¯ ¸Þ¸ð¸® ¼¼±×¸ÕÆ® »ý¼ºÀ» º¸Àå(¼º°ø½Ã)ÇÑ´Ù.
ÀÌ°ÍÀº ¼¼±×¸ÕÆ®¿¡ ´ëÇÑ ¹èŸÀû Á¢±ÙÀ» ³ªÅ¸³»´Â °ÍÀº ¾Æ´Ï´Ù.
ȣȯ
SVr4, SVID. SVr4 ¹®¼´Â EEXIST ¿¡·¯ Á¶°ÇÀ» Ãß°¡ÀûÀ¸·Î ±â¼úÇß´Ù.
SVr4 ¿Í SVID ¹®¼µéÀº EIDRM Á¶°ÇÀ» ±â¼úÇÏÁö ¾Ê¾Ò´Ù.
°ü·Ã Ç׸ñ
ftok(3),
ipc(5),
shmctl(2),
shmat(2),
shmdt(2)
¹ø¿ª
Á¤°ÈÆ <skyeyes@soback.kornet.net> 2000³â 5¿ù 16ÀÏ
ÇÑ±Û Manpage ÇÁ·ÎÁ§Æ® (http://man.kldp.org) 2005³â 2¿ù 13ÀÏ
Index
- À̸§
-
- »ç¿ë¹ý
-
- ¼³¸í
-
- SYSTEM CALLS
-
- ¹Ýȯ°ª
-
- ¿¡·¯
-
- ÁÖÀÇ
-
- ¹ö±×
-
- ȣȯ
-
- °ü·Ã Ç׸ñ
-
- ¹ø¿ª
-
This document was created by
man2html,
using the manual pages.
Time: 06:54:53 GMT, February 13, 2005