SEMCTL

Section: Linux Programmer's Manual (2)
Updated: November 1, 1993
Index
Return to Main Contents
 

À̸§

semctl - ¼¼¸¶Æ÷¾î Á¦¾î±â.  

»ç¿ë¹ý

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

#if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)
/* union semun is defined by including <sys/sem.h> */
#else
/* according to X/OPEN we have to define it ourselves */
union semun {
        int val;                    /* SETVALÀ» À§ÇÑ°ª */
        struct semid_ds *buf;       /* IPC_STAT, IPC_SETÀ» À§ÇÑ ¹öÆÛ */
        unsigned short int *array;  /* GETALL, SETALLÀ» À§ÇÑ ¹è¿­ */
        struct seminfo *__buf;      /* IPC_INFOÀ» À§ÇÑ ¹öÆÛ */
};
#endif

int semctl (int semid, int semnum, int cmd, union semun arg)  

¼³¸í

semctl ÇÔ¼ö´Â semid °¡ °¡¸®Å°´Â ¼¼¸¶Æ÷¾î ÁýÇÕ, ȤÀº ÀÌ ÁýÇÕÀÇ semnum ¹ø° ¼¼¸¶Æ÷¾î(¼¼¸¶Æ÷¾î´Â 0 ¹øºÎÅÍ ½ÃÀÛÇÑ´Ù.)¿¡ cmd °¡ ÁöÁ¤ÇÏ´Â Á¦¾îÀÛ¿ëÀ» ½ÇÇàÇÑ´Ù.

cmd °¡ °®´Â °ªÀº ´ÙÀ½°ú °°´Ù.

IPC_STAT
arg.buf Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â ±¸Á¶Ã¼¿¡ ¼¼¸¶Æ÷¾î ÁýÇÕÀÇ µ¥ÀÌŸ ±¸Á¶ Á¤º¸¸¦ º¹»çÇÑ´Ù. semnum Àμö´Â ¹«½ÃµÈ´Ù. È£ÃâÇÑ ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î ¼³Á¤¿¡ Àбâ±ÇÇÑÀÌ ÀÖ¾î¾ßÇÑ´Ù.

IPC_RMID
¼¼¸¶Æ÷¾î ÁýÇÕ°ú µ¥ÀÌŸ ±¸Á¶¸¦ Áï½Ã Á¦°ÅÇÏ°í, ¸ðµç ´ë±âÁßÀÎ ÇÁ·Î¼¼½ºµéÀ» Àç½ÇÇàÇÑ´Ù. È£ÃâÇÑ ÇÁ·Î¼¼½ºÀÇ À¯È¿ »ç¿ëÀÚID´Â ¼öÆÛÀ¯Àú³ª ¼¼¸¶Æ÷¾î ÁýÇÕÀÇ »ý¼ºÀÚ È¤Àº ¼ÒÀ¯ÀÚÁßÀÇ Çϳª¿©¾ß ÇÑ´Ù. Àμö semnum ´Â ¹«½ÃµÈ´Ù.
GETALL
ÁýÇÕÀÇ ¸ðµç ¼¼¸¶Æ÷¾î¿¡ ´ëÇÑ semval °ªÀ» arg.array. ¿¡ ÀúÀåÇÑ´Ù. º¯¼ö semnum ´Â ¹«½ÃµÈ´Ù. È£ÃâÇÑ ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î¼³Á¤¿¡ Àб⠱ÇÇÑÀÌ ÀÖ¾î¾ßÇÑ´Ù.
GETNCNT
semnum ¹ø° ¼¼¸¶Æ÷¾îÀÇ semncnt °ªÀ» ¹ÝȯÇÑ´Ù. ÀÌ °ªÀº ¼¼¸¶Æ÷¾îÀÇ semval °ªÀÌ Áõ°¡Çϱ⸦ ±â´Ù¸®°í ÀÖ´Â ÇÁ·Î¼¼½ºÀÇ ¼ö¸¦ ³ªÅ¸³½´Ù. È£ÃâÇÑ ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î ¼³Á¤¿¡ Àб⠱ÇÇÑÀÌ ÀÖ¾î¾ßÇÑ´Ù.
GETPID
¼¼¸¶Æ÷¾î È£ÃâÀº sempid ÀÇ °ªÀ» ¹ÝȯÇÑ´Ù. ÀÌ °ªÀº °¡Àå ÃÖ±Ù¿¡ ÇØ´ç ¼¼¸¶Æ÷¾î¿¡ semop È£ÃâÀ» Çß´ø ÇÁ·Î¼¼½ºÀÇ pid¸¦ ³ªÅ¸³½´Ù. È£ÃâÇÑ ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î ¼³Á¤¿¡ Àб⠱ÇÇÑÀÌ ÀÖ¾î¾ßÇÑ´Ù.
GETVAL
ÁýÇÕÀÇ semnum ¹ø° ¼¼¸¶Æ÷¾î¿¡ ´ëÇÑ semval ÀÇ °ªÀ» ¹ÝȯÇÑ´Ù. È£Ãâ ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î ¼³Á¤¿¡ ´ëÇÑ Àбâ Á¢±Ù¿¡ ÀÖ¾î Ưº°ÇÑ ±ÇÇÑÀ» °®°í ÀÖ¾î¾ß ÇÑ´Ù.
GETZCNT
½Ã½ºÅÛ È£ÃâÀº ÁýÇÕÀÇ semnum ¹ø° ¼¼¸¶Æ÷¾î¿¡ ´ëÇÑ semzcnt ÀÇ °ªÀ» ¹ÝȯÇÑ´Ù.ÀÌ °ªÀº ¼¼¸¶Æ÷¾îÀÇ semval °ªÀÌ 0ÀÌ µÇ±â¸¦ ±â´Ù¸®°í ÀÖ´Â ÇÁ·Î¼¼½ºÀÇ ¼ö¸¦ ³ªÅ¸³½´Ù. È£Ãâ ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î ¼³Á¤¿¡ ´ëÇÑ Àбâ Á¢±Ù ±ÇÇѵéÀ» °®°í ÀÖ¾î¾ß ÇÑ´Ù.
SETALL
arg.array Àμö ¹è¿­À» »ç¿ëÇÏ¿© ÁýÇÕÀÇ ¸ðµç ¼¼¸¶Æ÷¾îÀÇ semval °ªÀ» ¼³Á¤ÇÑ´Ù. ÁýÇÕ°ú °ü·ÃµÈ semid_ds ±¸Á¶Ã¼ÀÇ sem_ctime ¸â¹ö¸¦ ¶ÇÇÑ ¾÷µ¥ÀÌÆ®ÇÑ´Ù. ¸ðµç ÇÁ·Î¼¼½º¿¡¼­ º¯°æµÈ ¼¼¸¶Æ÷¾î¿¡ ´ëÇØ Undo ¿£Æ®¸®µéÀº ¼Ò°ÅµÈ´Ù. ´ë±â¿­¿¡¼­ À¯ÈÞÁßÀÎ ÇÁ·Î¼¼½ºµéÀº ÀϺΠsemval ÀÌ 0ÀÌ µÇ°Å³ª, Áõ°¡Çϸé, ´Ù½Ã È°¼ºÈ­µÈ´Ù. Àμö semnum Àº ¹«½ÃµÈ´Ù. È£Ãâ ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î ¼³Á¤¿¡ ´ëÇÑ º¯°æ Á¢±Ù ±ÇÇÑÀ» °®°í ÀÖ¾î¾ß ÇÑ´Ù.
SETVAL
arg.val °ªÀ» »ç¿ëÇÏ¿© ÁýÇÕÀÇ semnum ¹ø° ¼¼¸¶Æ÷¾îÀÇ semval °ªÀ» ¼³Á¤ÇÑ´Ù. semid_ds ±¸Á¶ÀÇ sem_ctime ¸â¹ö¸¦ ¶ÇÇÑ ¾÷µ¥ÀÌÆ®½ÃŲ´Ù. ¸ðµç ÇÁ·Î¼¼½º¿¡¼­ º¯°æµÈ ¼¼¸¶Æ÷¾î¿¡ ´ëÇØ Undo ¿£Æ®¸®µéÀº ¼Ò°ÅµÈ´Ù. ´ë±â¿­¿¡¼­ À¯ÈÞÁßÀÎ ÇÁ·Î¼¼½ºµéÀº semval ÀÌ 0ÀÌ µÇ°Å³ª, Áõ°¡Çϸé, ´Ù½Ã È°¼ºÈ­µÈ´Ù. Àμö semnum Àº ¹«½ÃµÈ´Ù. È£Ãâ ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î ¼³Á¤¿¡ ´ëÇÑ º¯°æ Á¢±Ù ±ÇÇÑÀ» °®°í ÀÖ¾î¾ß ÇÑ´Ù.
 

¹Ýȯ°ª

½ÇÆÐÇϸé, ½Ã½ºÅÛ È£ÃâÀº ¿¡·¯¸¦ °¡¸®Å°´Â errno ¿Í ÇÔ²² -1 ¸¦ ¸®ÅÏÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ½Ã½ºÅÛ È£ÃâÀº ¾Æ·¡¿Í °°ÀÌ cmd ¿¡ µû¶ó À½¼ö°ªÀÌ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇÑ´Ù.
GETNCNT
semncnt ÀÇ °ª .
GETPID
sempid ÀÇ °ª .
GETVAL
semval ÀÇ °ª.
GETZCNT
semzcnt ÀÇ °ª .
 

¿¡·¯

½ÇÆÐ ¸®ÅÏ¿¡ ´ëÇÏ¿©, errno ´Â ´ÙÀ½ÀÇ °ªµéÁß Çϳª·Î ¼³Á¤µÉ °ÍÀÌ´Ù.:
EACCES
È£Ãâ ÇÁ·Î¼¼½º´Â cmd ¸¦ ½ÇÇàÇϴµ¥ ÇÊ¿äÇÑ Á¢±Ù ±ÇÇÑÀ» °®°í ÀÖÁö ¾Ê´Â´Ù.
EFAULT
arg.buf ¿¡ ÀÇÇØ °¡¸®Å°´Â ÁÖ¼Ò³ª arg.array ´Â Á¢±ÙÀÌ ºÒ°¡´ÉÇÏ´Ù.
EIDRM
¼¼¸¶Æ÷¾î ¼³Á¤Àº »èÁ¦µÇ¾ú´Ù.
EINVAL
cmd ¶Ç´Â semid ¿¡ ´ëÇÑ ºÎÀûÀýÇÑ °ª.
EPERM
Àμö cmd °¡ IPC_SET ¶Ç´Â IPC_RMID °ªÀ» °®Áö¸¸, È£Ãâ ÇÁ·Î¼¼½º À¯È¿ »ç¿ëÀÚ ID´Â ¸í·ÉÀ» ½ÇÇà½Ãų ¼ö ÀÖ´Â ÃæºÐÄ¡ ¾ÊÀº Ư±ÇµéÀ» °®´Â´Ù.
ERANGE
Àμö cmd ´Â SETALL ¶Ç´Â SETVAL¸¦ °®°í, and the value to which semval °¡ 0º¸´Ù Àû°í ±¸Çö °ªº¸´Ù ´õ Å©°Ô ¼³Á¤µÇ¾î¾ß ÇÏ´Â °ªÀ» °®´Â´Ù. SEMVMX.
 

ÁÖÀÇ

IPC_INFO, SEM_STAT ±×¸®°í SEM_INFO Á¦¾î È£ÃâµéÀº ÇÒ´çµÈ ÀÚ¿øµé¿¡ Á¤º¸¸¦ Á¦°øÇÏ´Â ipcs(8) ÇÁ·Î±×·¥¿¡ ÀÇÇØ »ç¿ëµÈ´Ù.

¼¼¸¶Æ÷¾î ¼³Á¤¿¡ ´ëÇÑ ´ÙÀ½ÀÇ ½Ã½ºÅÛ Á¦ÇÑÀº semctl È£Ãâ¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù.

SEMVMX
semval ¿¡ ´ëÇÑ ÃÖ´ë°ªÀº ±¸Çö¿¡ ÀÇÁ¸ÀûÀÌ´Ù (32767).
 

ȣȯ

SVr4, SVID. SVr4´Â ¿¡·¯ Á¶°Ç EINVAL°ú EOVERFLOW¿¡ ´ëÇÑ ¹®¼­¸¦ ÀÛ¼ºÇÑ´Ù.  

°ü·Ã Ç׸ñ

ipc(5), shmget(2), shmat(2), shmdt(2)  

¹ø¿ª

ASPLINUX<man@asp-linux.co.kr> 2000³â 7¿ù 29ÀÏ
¹è¼ºÈÆ <plodder@kldp.org> 2000³â 11¿ù 18ÀÏ
ÇÑ±Û Manpage ÇÁ·ÎÁ§Æ® (http://man.kldp.org) 2005³â 2¿ù 14ÀÏ


 

Index

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

This document was created by man2html, using the manual pages.
Time: 05:17:55 GMT, February 14, 2005