semget

SEMGET(2)                  Linux Programmer's Manual                 SEMGET(2)



ì´ë¦
       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ì¼



Linux 0.99.13                  November 1, 1993                      SEMGET(2)