SEMGET

Section: Linux Programmer's Manual (2)
Updated: November 1, 1993
Index
Return to Main Contents
 

À̸§

semget - ¼¼¸¶Æ÷¾î ÁýÇÕ ½Äº°ÀÚ¸¦ ¾ò¾î³½´Ù.  

»ç¿ë¹ý

# include <sys/types.h>
# include <sys/ipc.h>
# include <sys/sem.h>

int semget ( key_t key, int nsems, int semflg )  

¼³¸í

ÀÌ ÇÔ¼ö´Â key ÀÇ °ª¿¡ ´ëÀÀÇÏ´Â ¼¼¸¶Æ÷¾î ÁýÇÕ ½Äº°ÀÚ¸¦ ¹ÝȯÇÑ´Ù. key ÀÇ °ªÀÌ IPC_PRIVATE ÀÏ °æ¿ì, ¶Ç´Â key ÀÇ °ªÀÌ IPC_PRIVATE ´Â ¾Æ´ÏÁö¸¸ key ¿¡ ´ëÀÀÇÏ´Â ¼¼¸¶Æ÷¾î ÁýÇÕÀÌ ¾øÀ» °æ¿ì, ¶Ç´Â semflg ÀÌ IPC_CREAT À» Æ÷ÇÔÇÒ °æ¿ì, Áï, semflg °ú IPC_CREAT ÀÇ AND¿¬»êÀÌ 0ÀÌ ¾Æ´Ò °æ¿ì¿¡ ÇÔ¼ö´Â nsems °³ÀÇ ¼¼¸¶Æ÷¾î¸¦ °®´Â »õ·Î¿î ÁýÇÕÀ» ¸¸µç´Ù. semflg ¿¡ IPC_CREAT ¿Í IPC_EXCL °¡ µ¿½Ã¿¡ ÄÑÁ® ÀÖ´Â °ÍÀº, open(2) ÇÔ¼ö ÀÇ mode Àμö¿¡ IPC_CREAT ¿Í IPC_EXCL °¡ µ¿½Ã¿¡ ¼³Á¤µÇ¾î ÀÖÀ» ¶§¿Í µ¿ÀÏÇÑ ¿ªÇÒÀ» ÇÑ´Ù. Áï, semflag ¿¡ IPC_CREAT ¿Í IPC_EXCL °¡ µ¿½Ã¿¡ ¼³Á¤µÇ¾î ÀÖ°í, key ¿¡ ÇØ´çÇÏ´Â ¼¼¸¶Æ÷¾î°¡ ÀÌ¹Ì Á¸ÀçÇÒ ¶§ ÇÔ¼ö´Â ½ÇÆÐÇÑ´Ù.

¼¼¸¶Æ÷¾î »ý¼º½Ã, Àμö semflg ÀÇ ³·Àº 9ºñÆ®´Â ¼¼¸¶Æ÷¾î ÁýÇÕ¿¡ ´ëÇÑ Á¢±Ù ±ÇÇÑÀ» Á¤ÀÇÇÑ´Ù. Á¢±Ù ±ÇÇÑÀÇ Çü½ÄÀº open (2) creat (2) ½Ã½ºÅÛ È£ÃâÀÇ Á¢±Ù±ÇÇÑ ¼³Á¤½Ã¿Í µ¿ÀÏÇÏ´Ù. ´Ü, ½ÇÇà Çã°¡´Â ½Ã½ºÅÛ¿¡ ÀÇÇØ ÁÖ¾îÁöÁö ¾ÊÀ¸¸ç, ¼¼¸¶Æ÷¾î ÁýÇÕ¿¡ ´ëÇÑ ¾²±â±ÇÇÑÀº ½ÇÁúÀûÀ¸·Ð º¯°æ±ÇÇÑÀ» ÀǹÌÇÑ´Ù.

°Ô´Ù°¡ »ý¼º½Ã ½Ã½ºÅÛ È£ÃâÀº ½Ã½ºÅÛ ¼¼¸¶Æ÷¾î ÁýÇÕÀÇ µ¥ÀÌŸ ±¸Á¶ semid_ds ¸¦ ´ÙÀ½°ú °°ÀÌ ÃʱâÈ­ÇÑ´Ù:

sem_perm.cuid ¿Í sem_perm.uid ´Â È£ÃâÇÑ ÇÁ·Î¼¼½ºÀÇ À¯È¿ »ç¿ëÀÚ-ID·Î ¼³Á¤µÈ´Ù.
sem_perm.cgid ¿Í sem_perm.gid ´Â È£ÃâÇÑ ÇÁ·Î¼¼½ºÀÇ À¯È¿ ±×·ì-ID·Î ¼³Á¤µÈ´Ù.
sem_perm.mode ÀÇ °¡Àå ³·Àº 9ºñÆ®´Â semflg ÀÇ °¡Àå ³·Àº 9ºñÆ®·Î ¼³Á¤µÈ´Ù.
sem_nsems ´Â nsems ÀÇ °ªÀ¸·Î ¼³Á¤µÈ´Ù.
sem_otime ´Â 0À¸·Î ¼³Á¤µÈ´Ù.
sem_ctime ´Â ÇöÀç½Ã°¢À¸·Î ¼³Á¤µÈ´Ù.

Àμö nsems ´Â ½Ã½ºÅÛÈ£ÃâÀÌ ÁýÇÕÀ» »ý¼ºÇÏÁö ¾ÊÀ» °æ¿ì¿¡´Â 0 ÀÏ ¼ö ÀÖ´Ù. ±× ¿Ü¿¡ nsems ´Â 0 º¸´Ù Å©°í semid´ç ¼¼¸¶Æ÷¾îÀÇ ÃÖ´ë°ª ÀÌÇÏÀÎ ¼öÀ̾î¾ß¸¸ ÇÑ´Ù. (SEMMSL).

¼¼¸¶Æ÷¾î ÁýÇÕÀÌ ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é, Á¢±Ù ±ÇÇÑÀ» È®ÀÎÇÏ°í, »èÁ¦µÉ °ÍÀ¸·Î Ç¥½ÃµÇ¾îÀÖ´ÂÁö¸¦ È®ÀÎÇÑ´Ù.  

¹Ýȯ°ª

¼º°ø½Ã, ¹Ýȯ°ªÀº ¾çÀÇ Á¤¼ö°ªÀ» °®´Â ¼¼¸¶Æ÷¾î ÁýÇÕ ½Äº°ÀÚÀÏ °ÍÀÌ°í, ¾Æ´Ï¶ó¸é ¿¡·¯¸¦ ³ªÅ¸³»´Â errno ¿Í ÇÔ²² -1 ÀÌ ¹ÝȯµÈ´Ù.  

¿¡·¯

½ÇÆаª ¹ÝȯÀ» À§ÇØ, errno ´Â ´ÙÀ½ °ªÁß Çϳª·Î ¼³Á¤µÉ °ÍÀÌ´Ù:
EACCES
key ¿¡ ´ëÀÀÇÏ´Â ¼¼¸¶Æ÷¾î ÁýÇÕÀÌ Á¸ÀçÇÏÁö¸¸, È£ÃâÇÑ ÇÁ·Î¼¼½º´Â ÁýÇÕ¿¡ ´ëÇÑ Á¢±Ù±ÇÇÑÀÌ ¾ø´Ù.
EEXIST
semflg ¿¡ IPC_CREAT ¿Í IPC_EXCL ÀÌ ¼³Á¤µÇ¾î Àִµ¥, key ¿¡ ´ëÀÀÇÏ´Â ¼¼¸¶Æ÷¾î ÁýÇÕÀÌ ÀÌ¹Ì Á¸ÀçÇÑ´Ù.
ENOENT
key ¿¡ ´ëÀÀÇÏ´Â ¼¼¸¶Æ÷¾î ÁýÇÕÀÌ Á¸ÀçÇÏÁö ¾Ê°í, semflg ¿¡´Â IPC_CREAT °¡ ¼³Á¤µÇ¾î ÀÖÁöµµ ¾Ê´Ù.
ENOMEM
¼¼¸¶Æ÷¾î ÁýÇÕÀÌ »ý¼ºµÇ¾î¾ß ÇÏÁö¸¸ ½Ã½ºÅÛ¿¡ ¸Þ¸ð¸®°¡ ºÎÁ·ÇÏ´Ù.
ENOSPC
¼¼¸¶Æ÷¾î ÁýÇÕÀÌ »ý¼ºµÇ¾î¾ß ÇÏÁö¸¸ ½Ã½ºÅÛÀÇ ¼¼¸¶Æ÷¾î ÁýÇÕ °¹¼ö ÃÖ´ë°ª, (SEMMNI) °³º° ¼¼¸¶Æ÷¾î °¹¼öÀÇ ÃÖ´ë°ª (SEMMNS) Á¦ÇÑ ¶§¹®¿¡ ¸¸µéÁö ¸øÇß´Ù.
 

ÁÖÀÇ

IPC_PRIVATE Àº Ç÷¡±×°¡ ¾Æ´Ï°í, key_t ŸÀÔÀÌ´Ù. key °¡ ÀÌ °ªÀ» °®À» ¶§¿¡ ½Ã½ºÅÛ È£ÃâÀº semflg ÀÇ ¾Æ·¡ 9ºñÆ® ÀÌ¿ÜÀÇ ´Ù¸¥ °ÍÀº ¸ðµÎ ¹«½ÃÇÏ°í »õ·Î¿î ¼¼¸¶Æ÷¾î ÁýÇÕÀ» »ý¼ºÇÑ´Ù.

´ÙÀ½Àº semget È£Ãâ¿¡ ¿µÇâÀ» ÁÖ´Â ¼¼¸¶Æ÷¾î ¼³Á¤ ÀÚ¿øÀ» Á¦ÇÑÇÑ´Ù:

SEMMNI
½Ã½ºÅÛ ¼¼¸¶Æ÷¾î ¼³Á¤ÀÇ ÃÖ´ë°ª ¹üÀ§: Á¤Ã¥ÀÇÁö.
SEMMSL
semid´ç ¼¼¸¶Æ÷¾îÀÇ ÃÖ´ë°ª: ±¸Çö ÀÇÁö (ÇöÀç 500).
SEMMNS
½Ã½ºÅÛ ¼¼¸¶Æ÷¾îÀÇ ÃÖ´ë°ª ¹üÀ§; Á¤Ã¥ ÀÇÁö.
 

¹ö±×

IPC_PRIVATE ÀÇ »ç¿ëÀº ´Ù¸¥ ÇÒ´çµÈ ¼¼¸¶Æ÷¾î ¼³Á¤¿¡ Á¢±Ù ÇÁ·Î¼¼½ºµéÀ» ¾ïÁ¦ÇÑ´Ù.

µ¥ÀÌŸ ±¸Á¶´Â ¼³Á¤¿¡ ½Ã½ºÅÛ È£Ãâ¿¡ ÀÇÇØ ÃʱâÈ­µÇÁö ¾Ê´Â °¢ ¼¼¸¶Æ÷¾î°ú ÀÏÄ¡ÇÑ´Ù.  

ȣȯ

SVr4, SVID. SVr4 documents additional error conditions EINVAL, EFBIG, E2BIG, EAGAIN, ERANGE, EFAULT.  

°ü·Ã Ç׸ñ

ftok(3), ipc(5), semctl(2), semop(2)  

¹ø¿ª

ASPLINUX <man@asp-linux.co.kr> 2000³â 7¿ù 29ÀÏ
¹è¼ºÈÆ <plodder@kldp.org> 2000³â 11¿ù 18ÀÏ
ÇÑ±Û Mnapage ÇÁ·ÎÁ§Æ® (http://man.kldp.org) 2005³â 2¿ù 14ÀÏ


 

Index

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

This document was created by man2html, using the manual pages.
Time: 05:13:49 GMT, February 14, 2005