linux man page : semget - ¼¼¸¶Æ÷¾î °ªÀ» °¡Á®¿Â´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
Docbook ¿ø¹®

<a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/function_semget(2)">semget</a>(2)

1장. semget(2)

차례
1.1절. »ç¿ë¹ý
1.2절. ¼³¸í
1.3절. ¹Ýȯ°ª
1.4절. ¿¡·¯
1.5절. ¿¹Á¦

¼¼¸¶Æ÷¾î ¼³Á¤À» È®ÀÎÇÑ´Ù.


1.1절. »ç¿ë¹ý

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

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


1.2절. ¼³¸í

key ÀÇ °ª°ú ÀÏÄ¡ÇÏ´Â ¼¼¸¶Æ÷¾î ¼³Á¤È®ÀÎÀÚ¸¦ ¹ÝȯÇÑ´Ù. sem_num Àº ¼¼¸¶Æ÷¾î¸¦ »ý¼ºÇÒ°ÍÀÎÁö, ¾Æ´Ï¸é ÀÌ¹Ì ¸¸µé¾îÁø ¼¼¸¶Æ÷¾î¿¡ Á¢±ÙÇÒ°ÍÀÎÁö¸¦ °áÁ¤Çϱâ À§Çؼ­ »ç¿ëÇÑ´Ù.

semflg ´Â ¼¼¸¶Æ÷¾î »ý¼ºÆ¯¼ºÀ» °áÁ¤Çϱâ À§Çؼ­ »ç¿ëÇÑ´Ù. Áï ¼¼¸¶Æ÷¸¦ »ý¼ºÇϴµ¥ À־ ÀÌ¹Ì ¸¸µé¾îÁø ¼¼¸¶Æ÷¾î°¡ ÀÖ´Ù¸é ¾î¶² ÇൿÀ» ÃëÇÒ°ÍÀÎÁö, ±×¸®°í Á¢±Ù±ÇÇÑÀº ¾î¶»°Ô ÇÒ°ÍÀÎÁöµîÀ» ÁöÁ¤Çϱâ À§Çؼ­ »ç¿ëÇÑ´Ù.

¸¸¾à semflg °¡ IPC_PRIVATE °¡ ¾Æ´Ï°í ÁÖ¾îÁø key °ªÀ¸·Î ÀÌ¹Ì ¸¸µé¾îÁø ¼¼¸¶Æ÷¾î¿Í Áߺ¹µÇÁö ¾ÊÀ¸¸é »õ·Î »ý¼ºµÉ°ÍÀÌ´Ù. ¸¸¾à IPC_PRIVATE À̰í Áߺ¹µÈ key °ªÀÌ ÀÖ´Ù¸é »ý¼º¿¡ ½ÇÆÐÇÏ°í ¿¡·¯¸¦ ¸®ÅÏÇÒ°ÍÀÌ´Ù.


1.3절. ¹Ýȯ°ª

¼º°øÇÒ°æ¿ì ¼¼¸ðÆ÷¾î ¼³Á¤È®ÀÎÀÚ(¾çÀÇ Á¤¼ö)À̸ç, ±×·¸Áö ¾ÊÀ»°æ¿ì -1 ÀÌ ¹ÝȯµÇ°í errno °¡ ¼³Á¤µÈ´Ù.


1.4절. ¿¡·¯

´Ù¾çÇÑ ¿øÀο¡ ÀÇÇØ¼­ ¿¡·¯°¡ ¹ß»ýÇÒ¼ö ÀÖÀ¸¸ç ¾Æ·¡¿Í °°Àº ¿¡·¯ ¸Þ½ÃÁöµéÀÌ ÀÖ´Ù.

EACCESS

¼¼¸¶Æ÷¾î Á¢±ÙÀ» À§ÇÑ key °¡ Á¸ÀçÇÏÁö¸¸, È£ÃâµÈ ÇÁ·Î¼¼½º°¡ ¼¼¸¶Æ÷¾î¿¡ Á¢±Ù±ÇÇÑÀ» °®Áö ¸øÇÒ°æ¿ì

EEXIST

semflg °¡ IPC_CREATE ¿Í IPC_EXECL ·Î ¼³Á¤µÇ¾î ÀÖ°í »ç¿ëµÈ key °¡ ÀÌ¹Ì Á¸ÀçÇÏ´Â ¼¼¸¶Æ÷¾îÀϰæ¿ì. (open(2) ÀÇ O_CREAT ¿Í O_EXECL Á¶ÇÕ°ú µ¿ÀÏÇÑ È¿°úÀÌ´Ù.)

ENOMEM

¼¼¸¶Æ÷¾î ¼³Á¤ÀÌ µÇ¾î¾ß ÇÏÁö¸¸ ½Ã½ºÅÛ¿¡ ¸Þ¸ð¸®°¡ ÃæºÐÄ¡ ¾Ê¾Æ¼­ ¼¼¸¶Æ÷¾î ¼³Á¤ÀÌ ¾ÈµÉ°æ¿ì

ENOSPC

¼¼¸¶Æ÷¾î ¼³Á¤ÀÌ µÇ¾î¾ß ÇÏÁö¸¸ ½Ã½ºÅÛÀÇ ¼¼¸¶Æ÷¾î »ý¼º°¡´ÉÇÑ ÃÖ´ë°ª ¹üÀ§¸¦ ³Ñ°Ü¹ö·ÈÀ»°æ¿ì.


1.5절. ¿¹Á¦

#include <errno.h>

int main()
{
    int semid;
    int status;

    if ((semid = semget(12345, 1, IPC_CREAT|0666)) == -1)
    {
        perror("semget error ");
        return 1;
    }

    printf("success semid is %d : %d %d\n", status, semid, errno);
}
		
À§ÀÇ ÇÁ·Î±×·¥À» ½ÇÇà½ÃŲÈÄ ipcs ·Î È®ÀÎÇØº¸¸é ¾Æ·¡¿Í °°Àº °á°ú¸¦ µÇµ¹·ÁÁÙ°ÍÀÌ´Ù.
[root@localhost root]# ipcs -s

------ Semaphore Arrays --------
key        semid      owner      perms      nsems      status      
0x00003039 32768      root      666        1         
		

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.