¸®´ª½º ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ °¡À̵å
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