include('/home/users/hman/www/include/header.inc') ?>
Manpage of SEMOP
SEMOP
Section: Linux Programmer's Manual (2)
Updated: November 1, 1993
Index
HOME
À̸§
semop - ½Ã±×³Î Á¶ÀÛ.
»ç¿ë¹ý
# include <sys/types.h>
# include <sys/ipc.h>
# include <sys/sem.h>
int semop ( int semid,
struct sembuf *sops,
unsigned nsops )
¼³¸í
ÀÌ ÇÔ¼ö´Â .IR semid¿¡ ÀÇÇØ Áö½ÃµÈ ¼¼¸¶Æ÷¾î ¼¼Æ® Áß ¼±ÅÃµÈ ¸â¹öµé¿¡ ´ëÇÑ ¿¬»êµéÀ» ¼öÇàÇÑ´Ù.
sops°¡ °¡¸®Å°´Â ¹è¿³»ÀÇ .I nsops ¿ä¼ÒµéÀÇ °³º°ÀûÀÎ °ÍÀº
´ÙÀ½ÀÇ ¸â¹öµéÀ» Æ÷ÇÔÇÏ´Â .B "struct sembuf"¿¡ ÀÇÇÑ ¼¼¸¶Æ÷¾î»ó¿¡¼ ¼öÇàµÇ´Â ¿¬»êÀ» ¸í½ÃÇÑ´Ù.
short sem_num;
/* semaphore number: 0 = first */
short sem_op;
/* semaphore operation */
short sem_flg;
/* operation flags */
sem_flg¿¡¼ ÀÎ½ÄµÈ Ç÷¡±×µéÀº
IPC_NOWAIT°ú
SEM_UNDOÀÌ´Ù.
¸¸ÀÏ ¿¬»êÀÌ .BR SEM_UNDOÀ» ´Ü¾ðÇϸé,
ÀÌ´Â ÇÁ·Î¼¼½º°¡ ºüÁ®³ª°¥¶§ ½ÇÆÐÇÒ °ÍÀÌ´Ù.
½Ã½ºÅÛ È£Ãâ Àǹ̴ ¸¸ÀÏ ¸ðµç °ÍÀÌ ¼º°øµÈ´Ù¸é, ¿¬»êµéÀÌ ¼öÇàµÈ´Ù´Â °ÍÀ» º¸ÁõÇÑ´Ù.
¼¼Æ® Áß Ã¹¹øÂ° ¼¼¸¶Æ÷¾î°¡ 0ÀÎ °÷¿¡¼
¿¬»êµéÀÌ ¼öÇàµÉ °ÍÀÌ°í ´ÙÀ½ÀÇ ¼¼°¡Áö Áß ÇϳªÀÌ´Ù¶ó´Â °ÍÀ» º¸ÁõÇÑ´Ù.
Each operation is performed on the
°¢ ¿¬»êÀº ¼¼¸¶Æ÷¾î ¼¼Æ®ÀÇ .BR sem_num -th ¼¼¸¶Æ÷¾î»ó(¼¼Æ® Áß Ã¹¹øÂ° ¼¼¸¶Æ÷¾î°¡ 0ÀÎ °÷¿¡¼)¿¡¼ ¼öÇàµÇ°í,
´ÙÀ½ÀÇ ¼¼°¡Áö Áß ÇϳªÀÌ´Ù.
¸¸ÀÏ
sem_op°¡ ¾ç¼ö¶ó¸é, ¿¬»êÀº ÀÌ °ªÀ» .BR semvalÀ¸·Î Ãß°¡½ÃŲ´Ù.
´õ¿ì±â,
¸¸ÀÏ
SEM_UNDO°¡ ÀÌ ¿¬»ê¿¡ ´ëÇØ ÁÖÀåµÈ´Ù¸é, ½Ã½ºÅÛÀº ÀÌ ¼¼¸¶Æ÷¾î¿¡ ´ëÇÑ
ÇÁ·Î¼¼½º undo Ä«¿îÆ®¸¦ ¾÷µ¥ÀÌÆ®ÇÑ´Ù.
¿¬»êÀº °è¼ÓÀûÀ¸·Î ½ÇÇàµÇ°í, µû¶ó¼ À¯ÈÞÇÏ´Â ÇÁ·Î¼¼½º´Â ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
È£Ãâ ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î ¼¼Æ®¿¡ ´ëÇØ º¯°æ ±ÇÇѵéÀ» °®°í ÀÖ¾î¾ß ÇÑ´Ù.
¸¸ÀÏ
sem_op
ÀÌ zeroÀ̸é, ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î ¼¼Æ®¿¡ ´ëÇÑ Àбâ Á¢±Ù ±ÇÇѵéÀ» °®°í ÀÖ¾î¾ß ÇÑ´Ù.
¸¸ÀÏ
semval
ÀÌ Á¦·Î¶ó¸é, ¿¬»êÀº ½ÇÇàµÈ´Ù.
±×·¸Áö ¾ÊÀ¸¸é, ¸¸ÀÏ
IPC_NOWAITÀÌ
sem_flg³»¿¡¼ÁÖÀåµÇ¸é,
EAGAINÀ¸·Î¼³Á¤µÈ.Berrno¿¡ÀÇÇØ½ÇÆÐÇÑ´Ù.
±×·¸Áö ¾ÊÀ¸¸é,
semzcnt
Àº Çϳª¾¿ Áõ°¡Çϰí, ÇÁ·Î¼¼½º´Â ´ÙÀ½Áß Çϳª°¡ ÀϾ±â Àü±îÁö À¯ÈÞ¿¡ µç´Ù.
-
-
- *
-
semval
Àº .B semzcntÀÇ °ªÀÌ °¨¼ÒÇÏ´Â ¶§¿¡ 0ÀÌ µÈ´Ù.
- *
-
¼¼¸¶Æ÷¾î ¼¼Æ®´Â »èÁ¦µÈ´Ù. ½Ã½ºÅÛ È£ÃâÀº .BR EIDRMÀ¸·Î ¼³Á¤µÈ .B errno¿¡ ÀÇÇØ
½ÇÆÐÇÑ´Ù.
- *
-
È£Ãâ ÇÁ·Î¼¼½º´Â °¨ÁöµÇ¾î¾ß ÇÏ´Â ½Ã±×³ÎÀ» ¼ö½ÅÇÑ´Ù.
semzcntÀÇ °ªÀº °¨¼ÒµÇ°í, ½Ã½ºÅÛ È£ÃâÀº .BR EINTR·Î ¼³Á¤µÈ .B errno¿¡ ÀÇÇØ
½ÇÆÐÇÑ´Ù.
¸¸ÀÏ
sem_op
ÀÌ 0º¸´Ù ³·´Ù¸é, ÇÁ·Î¼¼½º´Â ¼¼¸¶Æ÷¾î ¼¼Æ®¿¡ ´ëÇÑ º¯°æ ±ÇÇѵéÀ» °®°í ÀÖ¾î¾ß ÇÑ´Ù.
¸¸ÀÏ
semval
ÀÌ .BR sem_op ÀÇ Àý´ë°ªº¸´Ù ³ô°Å³ª µ¿ÀÏÇÏ´Ù¸é,
sem_opÀÇ Àý´ë°ªÀº .BR semval¿¡ ÀÇÇØ °¨¼ÒµÈ´Ù .
´õ¿ì±â, ¸¸ÀÏ
SEM_UNDOÀÌ ÀÌ ¿¬»ê¿¡ ´ëÇØ ´Ü¾ðµÈ´Ù¸é, ½Ã½ºÅÛÀº ÀÌ ¼¼¸¶Æ÷¾î¿¡ ´ëÇÑ
ÇÁ·Î¼¼½º undo Ä«¿îÆ®¸¦ ¾÷µ¥ÀÌÆ®ÇÑ´Ù.
±×¸®°í³ª¼, ¿¬»êÀº °è¼ÓµÈ´Ù.
±×·¸Áö ¾Ê°í, ¸¸ÀÏ
Otherwise, if
IPC_NOWAITÀÌ .BR sem_flg³»¿¡¼ ´Ü¾ðµÈ´Ù¸é,
½Ã½ºÅÛ È£ÃâÀº.BR EAGAIN·Î ¼³Á¤µÈ .B errno¿¡ ÀÇÇØ ½ÇÆÐÇÑ´Ù.(¼öÇàµÈ ÀÌÀüÀÇ ¾×¼ÇµéÀ»
Ãë¼ÒÇÔÀ¸·Î¼)
±×·¸Áö ¾ÊÀ¸¸é,
Otherwise
semncnt´Â Çϳª¿¡ ÀÇÇØ Áõ°¡µÇ°í, ÇÁ·Î¼¼½º´Â ´ÙÀ½ Áß Çϳª°¡ ¹ß»ýÇϱâ Àü±îÁö À¯ÈÞÇÑ´Ù.
-
-
- *
-
semval
´Â .BR sem_opÀÇ Àý´ë°ªº¸´Ù µ¿ÀÏÇϰųª ´õ ³ô¾ÆÁø´Ù.
semncntÀÇ °ªÀÌ °¨¼ÒµÉ¶§, .B sem_opÀÇ Àý´ë°ªÀº .B semval¿¡¼ °¨ÇØÁø´Ù.
±×¸®°í
SEM_UNDOÀÌ ÀÌ ¿¬»ê¿¡ ´ëÇØ ÁÖÀåµÇ¸é, ½Ã½ºÅÛÀº ¼¼¸¶Æ÷¾î¿¡ ´ëÇÑ
ÇÁ·Î¼¼½º undo Ä«¿îÆ®¸¦ ¾÷µ¥ÀÌÆ®ÇÑ´Ù.
- *
-
¼¼¸¶Æ÷¾î ¼¼Æ®´Â ½Ã½ºÅÛ¿¡¼ »èÁ¦µÈ´Ù. ½Ã½ºÅÛ È£ÃâÀº .BR EIDRMÀ¸·Î ¼³Á¤µÈ .B errno¿¡ ÀÇÇØ
½ÇÆÐÇÑ´Ù.
- *
-
È£Ãâ ÇÁ·Î¼¼½º´Â °¨ÁöµÇ¾î¾ß ÇÑ´Â ½Ã±×³ÎÀ» ¼ö½ÅÇÑ´Ù. .B semncntÀÇ °ªÀº °¨¼ÒµÇ°í,
½Ã½ºÅÛ È£ÃâÀº .BR EINTRÀ¸·Î ¼³Á¤µÈ .B errno¿¡ ÀÇÇØ ½ÇÆÐÇÑ´Ù.
In case of success, the
¼º°øÇÒ °æ¿ì, .I sops¿¡ ÀÇÇØ Áö½ÃµÈ ¹è¿³»¿¡ ¸í½ÃµÈ °³º° ¼¼¸¶Æ÷¾î¿¡ ´ëÇÑ ±¸Á¶ .B semÀÇ
sempid ¸â¹ö´Â È£Ãâ ÇÁ·Î¼¼½ºÀÇ process-ID ·Î ¼³Á¤µÈ´Ù.
´õ¿íÀÌ, .B sem_otime
¿Í .B sem_ctime ¸ðµÎ ÇöÀç ½Ã°£À¸·Î ¼³Á¤µÈ´Ù.
¹Ýȯ°ª
If successful the system call returns
¸¸ÀÏ ¼º°øÀûÀ̸é, ½Ã½ºÅÛ È£ÃâÀº .BR 0À» ¸®ÅÏÇϰí,
±×·¸Áö ¾ÊÀ¸¸é, ¿¡·¯¸¦ °¡¸®Å°´Â .B errno¿Í ÇÔ²² .B -1¸¦ ¸®ÅÏÇÑ´Ù.
¿¡·¯
½ÇÆÐÇÏ´Â ¸®ÅÏ¿¡ ´ëÇÏ¿©,
errno´Â ´ÙÀ½ÀÇ °ªµéÁß Çϳª·Î ¼³Á¤µÉ °ÍÀÌ´Ù.
- E2BIG
-
Àμö .I nsops´Â .BR SEMOPM, Áï ½Ã½ºÅÛ È£Ã⸶´Ù Çã¿ëµÈ ¿¬»êµé
Áß ÃÖ´ë ¼ýÀÚº¸´Ù ´õ Å©´Ù.
- EACCES
-
È£Ãâ ÇÁ·Î¼¼½º´Â ¸í½ÃµÈ ¿¬»êµé Áß Çϳª¿¡ ÀÇÇØ ¿ä±¸µÇ´Â ¼¼¸¶Æ÷¾î ¼¼Æ®¿¡ ´ëÇÑ
Á¢±Ù ±ÇÇÑÀ» °®°í ÀÖÁö ¾Ê´Â´Ù.
- EAGAIN
-
¿¬»êÀº ½ÇÇàµÇÁö ¾Ê°í, .BR IPC_NOWAIT´Â
sem_flg³»¿¡ÁÖÀåµÈ´Ù.
- EFAULT
-
sopsÀÌ °¡¸®Å°´Â ÁÖ¼Ò´Â Á¢±ÙÀÌ ºÒ°¡´ÉÇÏ´Ù.
- EFBIG
-
ÀϺΠ¿¬»ê¿¡ ´ëÇÏ¿©, .B sem_num °ªÀº
0 º¸´Ù Àû°Å³ª, ÀÌ ¼¼Æ®¿¡¼ ¼¼¸¶Æ÷¾îÀÇ ¼ýÀÚµé º¸´Ù Å©°Å³ª µ¿ÀÏÇÏ´Ù.
- EIDRM
-
¼¼¸¶Æ÷¾î ¼¼Æ®´Â »èÁ¦µÇ¾ú´Ù.
- EINTR
-
´ë±â ¿¿¡¼ À¯ÈÞ½Ã, ÇÁ·Î¼¼½º´Â °¨ÁöµÇ¾î¾ß ÇÏ´Â ½Ã±×³ÎÀ» ¼ö½ÅÇÑ´Ù.
- EINVAL
-
¼¼¸¶Æ÷¾î ¼¼Æ®´Â Á¸ÀçÇÏÁö ¾Ê°Å³ª, .I semid´Â 0º¸´Ù À۰ųª,
nsops´Â Á¤¼ö°¡ ¾Æ´Ñ °ªÀ» °®´Â´Ù.
- ENOMEM
-
´Ü¾ðµÈ .B sem_flg ÀϺΠ¿¬»êÀÇ .B SEM_UNDO¿Í ½Ã½ºÅÛÀº undo ±¸Á¶¸¦ ÇÒ´çÇÒ ÃæºÐÇÑ
¸Þ¸ð¸®¸¦ °®°í ÀÖÁö ¾Ê´Ù.
- ERANGE
-
ÀϺΠ¿¬»ê¿¡ ´ëÇÏ¿©,
semop+semval´Â .BR semval¿¡ ´ëÇÑ ±¸Çö ÀÇÁ¸ÀûÀÎ ÃÖ´ë°ªÀÎ .BR SEMVMXº¸´Ù ´õÅ©´Ù. ,
ÁÖÀÇ
ÇÁ·Î¼¼½ºÀÇ .B sem_undo ±¸Á¶µéÀº .BR fork (2) ½Ã½ºÅÛ È£ÃâÀÇ ½ÇÇà¿¡¼ ÀÚ½Ä ÇÁ·Î¼¼½º¿¡ ÀÇÇØ
»ó¼ÓµÇÁö ¾Ê´Â´Ù.
´ë½Å¿¡ ÀÌ ±¸Á¶µéÀº .BR execve (2) ½Ã½ºÅÛ È£ÃâÀÇ ½ÇÇà¿¡ ÀÇÇØ °á°úÀûÀÎ ´ëü ÇÁ·Î¼¼½º¿¡ ÀÇÇØ »ó¼ÓµÈ´Ù.
´ÙÀ½µéÀº ¼¼¸¶Æ÷¾î ¼¼Æ®»ó¿¡¼ .B semop È£Ãâ¿¡ ¿µÇâÀ» ¹ÌħÀ¸·Î¼ ÀÚ¿ø¿¡ ´ëÇÑ ÇѰèÀÌ´Ù.
- SEMOPM
-
ÇϳªÀÇ .B semop È£Ãâ¿¡ ´ëÇØ Çã¿ëµÈ ¿¬»êµéÀÇ ÃÖ´ë ¼ýÀÚ. Á¤Ã¥ ÀÇÁ¸ÀûÀÌ´Ù.
- SEMVMX
-
semval¿¡´ëÇØÃÖ´ë·ÎÇã¿ëµÈ°ª.±¸ÇöÀÇÁ¸ÀûÀÌ´Ù(32767).
¹ö±×
½Ã½ºÅÛÀº undo ¿äûÀ¸·Î ÇÁ·Î¼¼½º¿¡ ÀÇÇØ º¯°æµÈ °³º° ¼¼¸¶Æ÷¾î¿¡ ´ëÇÑ °³º°
ÇÁ·Î¼¼½º .B sem_undo ±¸Á¶¸¦ °ü¸®ÇÑ´Ù.
ÀÌ·¯ÇÑ ±¸Á¶µéÀº ÇÁ·Î¼¼½º exit¿¡ ÀÚÀ¯·Ó´Ù.
undo ¸ÞÄ¿´ÏÁò¿¡ ÀÖ¾î À߸øµÈ Á¡ÀÇ ÁÖ¿äÇÑ ¿øÀÎÀº ¿¬»êÀÇ ±Ø¼Ò ¼¼Æ®¸¦ ¼¼¸¶Æ÷¸ÓÀÇ ¹è¿·Î ¸¸µå´Â
°ü³ä¿¡ ÀûÇÕÇÏ°Ô ÇѴٴµ¥ ÀÖ´Ù.
¼ö¸¹Àº ¹è¿ ¹× °³º° ¼¼¸¶Æ÷¾î¿¡ ´ëÇÑ undo ¿äûµéÀº .B semopt È£Ãâµé À§¿¡ ÃàÀûµÉ ¼ö ÀÖ´Ù.
ºüÁ®³ª°¥¶§, ÇÁ·Î¼¼½º°¡ ÀáÀÚ°í ÀÖ¾î¾ß Çϴ°¡? ¶Ç´Â ¸ðµç undo ¿¬»êµéÀÌ .B IPC_NOWAIT Ç÷¡±×¿¡
È¿·ÂÀÌ µÉ ¼ö ÀÖµµ·Ï Àû¿ëµÇ¾î¾ß Çϴ°¡?
Áï½Ã Àû¿ëµÇ¾î¾ß ÇÏ´Â ÇöÀçÀÇ undo ¿¬»êµéÀº ±â´Ù¸²ÀÌ ÇÊ¿äÇÑ ¿¬»êµéÀº ¹«½ÃµÈ´Ù.
µû¶ó¼, ¾ÇÀÇ ¾ø´Â undoÀÇ È°¿ëÀº »çÀûÀÎ ¼¼¸¶Æ÷¾î¿¡ ÀÇÇØ¼¸¸ º¸ÁõµÈ´Ù.
ȣȯ
SVr4, SVID. SVr4´Â EINVAL, EFBIG, ENOSPCÀÇ Ãß°¡ ¿¡·¯ Á¶°Çµé¿¡ ´ëÇÑ ¹®¼¸¦ Á¦°øÇÑ´Ù.
°ü·Ã Ç׸ñ
ipc(5),
semctl(2),
semget(2)
¿ªÀÚ
ASPLINUX<man@asp-linux.co.kr>, 2000³â 7¿ù 29ÀÏ
Index
- À̸§
-
- »ç¿ë¹ý
-
- ¼³¸í
-
- ¹Ýȯ°ª
-
- ¿¡·¯
-
- ÁÖÀÇ
-
- ¹ö±×
-
- ȣȯ
-
- °ü·Ã Ç׸ñ
-
- ¿ªÀÚ
-
include('/home/users/hman/www/include/tailer.inc') ?>