SEMGET

Section: Linux Programmer's Manual (2)
Updated: November 1, 1993
Index HOME
 

À̸§

semget - ½Ã±×³Î ¼³Á¤À» È®ÀÎÇÑ´Ù.  

»ç¿ë¹ý

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

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

¼³¸í

±â´ÉÀº Àμö key ÀÇ °ª°ú ÀÏÄ¡ÇÏ´Â ½Ã±×³Î ¼³Á¤ È®ÀÎÀÚ(identifier)¸¦ ¹ÝȯÇÑ´Ù. nsems ½Ã±×³ÎÀÇ »õ·Î¿î ¼³Á¤Àº key °¡ IPC_PRIVATE °ªÀ» °®°Å³ª key °¡ Á¸ÀçÇÏ´Â ¸ðµç ½Ã±×³Î ¼³Á¤ÀÌ key ¿Í ÀÏÄ¡ÇÏÁö ¾Ê´Â IPC_PRIVATE °¡ ¾Æ´Ï¸é »ý¼ºµÇ°í, IPC_CREAT °¡ semflg ¿¡ ³ªÅ¸³ªÁö ¾Ê´Â´Ù.(i.e. semflg ¿Í IPC_CREAT ´Â 0ÀÌ ¾Æ´Ï´Ù). Çʵå IPC_CREAT ¿Í IPC_EXCL ÀÇ semflg ¿¡ Á¸Àç´Â °°Àº ·ê·Î ÀÛµ¿ÇÑ´Ù.

»ý¼º½Ã, Àμö semflg ÀÇ ³·Àº 9ºñÆ®´Â °°Àº Æ÷¸ËÀÇ ½Ã±×³Î ¼³Á¤¿¡ Á¢±Ù ±ÇÇÑÀ» Á¤ÀÇÇÑ´Ù.

°Ô´Ù°¡ »ý¼ºÇÏ´Â µ¿¾È ½Ã½ºÅÛ È£ÃâÀº ½Ã½ºÅÛ ½Ã±×³Î ¼³Á¤µ¥ÀÌŸ ±¸Á¶ 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).

½Ã±×³ÎÀÌ ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é, Àû±Ù ±ÇÇÑÀº ÀÔÁõµÇ¾ú°í, verified, and a check is made to see if it is marked for destruction.  

¹Ýȯ°ª

¼º°ø½Ã, ¹Ýȯ°ªÀº ½Ã±×³Î ¼³Á¤ È®ÀÎÀÚ(¾çÀÇ Á¤¼ö)ÀÏ °ÍÀ̰í, ±×·¸Áö ¾ÊÀ¸¸é ¿¡·¯¸¦ ³ªÅ¸³»´Â errno ¿Í ÇÔ²² -1 ÀÌ ¹ÝȯµÈ´Ù.  

¿¡·¯

½ÇÆÐ°ª ¹ÝȯÀ» À§ÇØ, errno ´Â ´ÙÀ½ °ªÁß Çϳª·Î ¼³Á¤µÉ °ÍÀÌ´Ù:
EACCES
½Ã±×³Î ¼³Á¤Àº key ¸¦ À§ÇØ Á¸ÀçÇÏÁö¸¸, È£ÃâÇÑ ÇÁ·Î¼¼½º´Â ¼³Á¤¿¡ Á¢±Ù±ÇÇÑÀ» °®Áö ¸øÇÑ´Ù.
EEXIST
½Ã±×³Î ¼³Á¤Àº key ¸¦ À§ÇØ Á¸ÀçÇϰí semflg ´Â IPC_CREAT ¿Í IPC_EXCL ¸¦ ¿ËÈ£ÇÑ´Ù(asserting).
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ÀÏ


 

Index

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