ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : docbook>sigwaitinfo(2)
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
HTML º¯È¯¹®¼
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <chapter lang=ko> <!-- ÀÛ¼ºÀÚ : yundream --> <!-- ÀÛ¼ºÀÏ : 2004/02/20 --> <!-- ¿¬¶ôó : yundream@joinc.co.kr --> <!-- ÇÔ¼ö À̸§À» ÀÔ·ÂÇÕ´Ï´Ù --> <title>sigwaitinfo(2)</title> <!-- ÀÌ°Ç ÇÔ¼ö¿¡ ´ëÇÑ ´ë·«ÀûÀÎ ¼³¸íÀ̱¸¿ä --> <para> ´ë±â¿ÀÇ ½Ã±×³ÎÀ» µ¿±âÀûÀ¸·Î ±â´Ù¸°´Ù. </para> <!-- ¿©±â¿¡ ÇÔ¼öÀÇ °£´ÜÇÑ »ç¿ë¹ýÀÌ µé¾î°©´Ï´Ù --> <section> <title>»ç¿ë¹ý</title> <para> <screen> #include <signal.h> int sigwaitinfo(const sigset_t *set, siginfo_t *info); int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec timeout); </screen> </para> </section> <!-- ¿©±â¿£ ÇÔ¼öÀÇ ÀÚ¼¼ÇÑ ¼³¸í ÀÌ µé¾î°©´Ï´Ù --> <section> <title>¼³¸í</title> <para> sigwaitinfo()´Â ½Ã±×³Î ¼Â<emphasis>set</emphasis>¿¡ ¼³Á¤µÈ ½Ã±×³ÎÁß Çϳª°¡ Àü´ÞµÉ ¶§±îÁö ´ë±âÇÑ´Ù. ¼³Á¤µÈ ½Ã±×³Î Áß Çϳª°¡ Àü´ÞµÇ¸é Áï½Ã ¸®ÅÏÇÑ´Ù. ¸¸¾à <emphasis>info</emphasis>°¡ NULLÀÌ ¾Æ´Ï¶ó¸é ½Ã±×³Î °ü·Ã Á¤º¸¸¦ ä¿öÁØ´Ù. </para> <para> sigtimedwait()´Â <emphasis>timeout</emphasis>¸¸Å ½ÅÈ£¸¦ ±â´Ù¸®´Ù°¡ ½ÅÈ£°¡ ¾øÀ» °æ¿ì ¸®ÅÏÇÑ´Ù´Â °É Á¦¿ÜÇϰí´Â sigwaitinfo()¿Í µ¿ÀÏÇÏ´Ù. <screen> struct timespec { long tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ } </screen> </para> <para> ´ÙÀ½Àº <emphasis>info</emphasis>±¸Á¶Ã¼¿¡ Á¤ÀÇµÈ ¸â¹ö º¯¼öµéÀÌ´Ù. <screen> typedef struct siginfo { int si_signo; /* Signal number */ int si_errno; /* Error code */ int si_code; pid_t si_pid; uid_t si_uid; void *si_addr; union sigval si_value; union { /* Skipping other fields */ struct { int _band; /* Socket event flags (similar to poll) */ int _fd; /* Socket fd where event occurred */ } _sigpoll; } _sifields; } siginfo_t; #define si_fd _sifields._sigpoll._fd </screen> </para> </section> <!-- ÇÔ¼ö°¡ µÇµ¹·ÁÁÖ´Â °ªÀ̱¸¿ä --> <section> <title>¹Ýȯ°ª</title> <para> ¼º°øÇÒ °æ¿ì sigwaitinfo(), sigtimedwait()¸ðµÎ ½Ã±×³Î ¹øÈ£¸¦ ¸®ÅÏÇÑ´Ù. ½ÇÆÐÇßÀ» °æ¿ì -1À» ¸®ÅÏÇÑ´Ù. </para> </section> <!-- ¿¡·¯°¡ ¹ß»ýÇßÀ»¶§ µÇµ¹·ÁÁÖ´Â °ªµéÀÔ´Ï´Ù --> <section> <title>¿¡·¯</title> <para> <variablelist> <varlistentry> <term>EAGIN</term> <listitem> <para> sigtimedwait()¿¡¼ <emphasis>timeout</emphasis>µ¿¾È ¾Æ¹«·± ½ÅÈ£°¡ Àü´ÞµÇÁö ¾Ê¾ÒÀ» ¤Å¤·¿ì </para> </listitem> </varlistentry> <varlistentry> <term>EINVAL</term> <listitem> <para> <emphasis>timeout</emphasis>°¡ À߸ø ¼³Á¤µÇ¾ú´Ù. </para> </listitem> </varlistentry> <varlistentry> <term>EINTR</term> <listitem> <para> ½Ã±×³Î Çڵ鷯¿¡ ÀÇÇØ¼ ÀÎÅÍ·´Æ®°¡ °É·È´Ù. </para> </listitem> </varlistentry> </variablelist> </para> </section> <!-- ¸¶Áö¸·À¸·Î ¿¡Á¦ ÀÔ´Ï´Ù --> <!-- ¿©±â¿¡´Â ¿ÏÀüÇÑ ¿¹Á¦°¡ µé¾î°¡ Àִµ¥, ±»ÀÌ ¿ÏÀüÇÑ ¿¹Á¦¸¦ ¸¸µéÇÊ¿ä ¾øÀÌ --> <!-- ÄÚµå ÀϺκи¸ ÀÛ¼ºÇؼ ¿Ã·ÁÁּŵµ µË´Ï´Ù --> <!-- "<", ">", "&" µîÀº º¯È¯ÇØ ÁÖ¼Å¾ß Çϴµ¥, ±ÍÂúÀ¸½Ã¸é :-) º¯È¯ ÇÏÁö ¾Ê --> <!-- ¾Æµµ µË´Ï´Ù. Á¦°¡ °Ë»ç ÇØ¼ ¿Ã¸®°Ú½À´Ï´Ù --> <!-- ¿¹Á¦¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» Àû¾îÁּŵµ µÇ±¸¿ä --> <section> <title>¿¹Á¦</title> <para> <screen> #include <signal.h> #include <stdio.h> #include <unistd.h> int main() { struct sigaction sigact; siginfo_t info; int signo; printf("My pid %d\n", getpid()); sigemptyset(&sigact.sa_mask); sigaddset(&sigact.sa_mask, SIGUSR2); while(1) { signo = sigwaitinfo(&sigact.sa_mask, &info); printf("%d : %d\n", signo, info.si_pid); } } </screen> À§ ÇÁ·Î±×·¥Àº <emphasis>SIGUSR2</emphasis>°¡ Àü´ÞµÇ´Â°É ±â´Ù¸°´Ù. ¸¸¾à SIGUSR2 ½Ã±×³ÎÀ» ¹Þ´Â´Ù¸é ½Ã±×³ÎÀ» Àü´ÞÇÑ ÇÁ·Î¼¼½ºÀÇ PID¸¦ Ãâ·ÂÇÑ´Ù. </para> <para> ¾Æ·¡ ÇÁ·Î±×·¥Àº À§ÀÇ ¿¹Á¦¸¦ Å×½ºÆ® Çϱâ À§ÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. ÀÎÀÚ·Î SIGUSR2 ½Ã±×³ÎÀ» ¹ÞÀ» PID¸¦ ÁöÁ¤ÇÑ´Ù. ½Ã±×³ÎÀ» ¹ÞÀº ÇÁ·Î±×·¥ Ãø¿¡¼ ½Ã±×³ÎÀ» º¸³½ ÇÁ·Î¼¼½ºÀÇ PID¸¦ ¾ò¾î¿À´ÂÁö È®ÀÎÇØ º¸µµ·Ï ÇÏÀÚ. <screen> #include <signal.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char **argv) { int pid = atoi(argv[1]); printf("%d\n", getpid()); while(1) { kill(pid, SIGUSR2); sleep(1); printf("OK SIG\n"); } } </screen> </para> </section> <section> <title>Âü°í¹®Çå</title> <para> <orderedlist> <listitem> <para> <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/rts1">RTS °³¿ä</ulink> </para> </listitem> </orderedlist> </para> </section> </chapter> |
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|