 
 
 
 ¸®´ª½º ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ °¡À̵å
¸®´ª½º ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ °¡À̵å
  SYSTEM CALL: semget();                                                          
  PROTOTYPE: int semget ( key_t key, int nsems, int semflg );                                             
    RETURNS: semaphore set IPC identifier on success
             -1 on error: errno = EACCESS (permission denied)
                                  EEXIST (set exists, cannot create (IPC_EXCL))
                                  EIDRM (set is marked for deletion)
                                  ENOENT (set does not exist, no IPC_CREAT was used)
                                  ENOMEM (Not enough memory to create new set)
                                  ENOSPC (Maximum set limit exceeded)
  NOTES:
½Ã½ºÅÛ V IPCÀÇ ´Ù¸¥ Çüŵéó·³ ºÎ°¡ÀûÀÎ 8Áø ¸ðµå°¡ ¼¼¸¶ÆÛ ÁýÇÕÀÇ Çã°¡»çÇ× ÇüÅ¿¡ ¸¶½ºÅ©·Î ORµÉ ¼ö ÀÖ´Ù.
nsems ¾Æ±Ô¸ÕÆ®´Â »õ ÁýÇվȿ¡¼ ¸¸µé¾îÁ®¾ß ÇÏ´Â ¼¼¸¶ÆÛÀÇ °¹¼ö¸¦ ÁöÁ¤ÇÑ´Ù. À̰ÍÀº ¾Õ¿¡¼ ¼³¸íÇß´ø °¡»óÀÇ ÀÎ¼â¹æÀÇ ÇÁ¸°ÅÍÀÇ °¹¼ö¸¦ ÀǹÌÇÑ´Ù. ÁýÇÕ¾ÈÀÇ ÃʤÀ´ë ¼¼¸¶ÆÛÀÇ °¹¼ö´Â linux/sem.h¿¡ Á¤ÀÇ µÇ¾îÀÖ´Ù.
#define SEMMSL 32 /* <=512 id´ç ¼¼¸¶ÆÛÀÇ ÃÖ´ë °¹¼ö */ÀÌ¹Ì Á¸ÀçÇÏ´Â ÁýÇÕÀ» ¸íÈ®È÷ ¿°í ÀÖ´Ù¸é, nsems ¾Æ±Ô¸ÕÆ®´Â ¹«½ÃµÊ¿¡ ÁÖ¸ñÇØ¶ó.
¼¼¸¶ÆÛ ÁýÇÕÀ» ¸¸µé°í ¿©´Â wrapper ÇÔ¼ö¸¦ ¸¸µé¾î º¸ÀÚ:
int open_semaphore_set( key_t keyval, int numsems )
{
        int     sid;
        if ( ! numsems )
                return(-1);
        
        if((sid = semget( mykey, numsems, IPC_CREAT | 0660 )) == -1)
        {
                return(-1);
        }
        
        return(sid);
}
Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved 
Email To:Webmaster ,
Another address 
LAST UPDATE Nov 25,1997
Created Nov 24,1997