Rechercher une page de manuel
signal
Langue: ja
Version: 2002-06-13 (openSuse - 09/10/07)
Section: 7 (Divers)
Sommaire
̾Á°
signal - »ÈÍѲÄǽ¤Ê¥·¥°¥Ê¥ë¤Î°ìÍ÷ÀâÌÀ
Linux ¤Ï POSIX ¿®Íꥷ¥°¥Ê¥ë (reliable signal; °Ê¸å "ɸ½à¥·¥°¥Ê¥ë"¤Èɽµ) ¤È POSIX ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎξÊý¤ËÂбþ¤·¤Æ¤¤¤ë¡£¥·¥°¥Ê¥ë½èÍýÊýË¡
¥·¥°¥Ê¥ë¤Ï¤½¤ì¤¾¤ì¸½ºß¤Î¡Ö½èÍýÊýË¡ (disposition)¡×¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢ ¤³¤Î½èÍýÊýË¡¤Ë¤è¤ê¥·¥°¥Ê¥ë¤¬ÇÛÁ÷¤µ¤ì¤¿ºÝ¤Ë¥×¥í¥»¥¹¤¬ ¤É¤Î¤è¤¦¤Ê¿¶Éñ¤¤¤ò¤¹¤ë¤«¤¬·è¤Þ¤ë¡£¸å½Ò¤Îɽ¤Î "ưºî" ¤ÎÍó¤Î¥¨¥ó¥È¥ê¤Ï³Æ¥·¥°¥Ê¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î ½èÍýÊýË¡¤ò¼¨¤·¤Æ¤ª¤ê¡¢°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤ò»ý¤Ä¡£
- Term
- ¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï¥×¥í¥»¥¹¤Î½ªÎ»¡£
- Ign
- ¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï¤³¤Î¥·¥°¥Ê¥ë¤Î̵»ë¡£
- Core
- ¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï¥×¥í¥»¥¹¤Î½ªÎ»¤È¥³¥¢¥À¥ó¥×½ÐÎÏ (core(5) »²¾È)¡£
- Stop
- ¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï¥×¥í¥»¥¹¤Î°ì»þÄä»ß¡£
- Cont
- ¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï¡¢¥×¥í¥»¥¹¤¬Ää»ßÃæ¤Î¾ì¹ç¤Ë¤½¤Î¼Â¹Ô¤ÎºÆ³«¡£
¥×¥í¥»¥¹¤Ï¡¢ sigaction(2) ¤ä signal(2) ¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤ë (signal(2) ¤ÎÊý¤¬°Ü¿¢À¤ÏÄ㤤)¡£¥·¥°¥Ê¥ë¤ÎÇÛÁ÷»þ¤Ëµ¯¤³¤ëưºî¤È¤·¤Æ ¥×¥í¥»¥¹¤¬ÁªÂò¤Ç¤¤ë¤Î¤Ï¡¢¼¡¤Î¤¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë¡£ ¥Ç¥Õ¥©¥ë¥È¤Îưºî¤ò¼Â¹Ô¤¹¤ë¡¢¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¡¢ ¥·¥°¥Ê¥ë ¥Ï¥ó¥É¥é (signal handler) ¤Ç¥·¥°¥Ê¥ë¤òÊ᪤¹¤ë¡£¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤È¤Ï¡¢¥·¥°¥Ê¥ëÇÛÁ÷»þ¤Ë ¼«Æ°Åª¤Ëµ¯Æ°¤µ¤ì¤ë¥×¥í¥°¥é¥ÞÄêµÁ¤Î´Ø¿ô¤Ç¤¢¤ë¡£
¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï¥×¥í¥»¥¹Ã±°Ì¤Î°À¤Ç¤¢¤ë¡£ ¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¤¢¤ë¥·¥°¥Ê¥ë¤Î½èÍýÊýË¡¤Ï Á´¤Æ¤Î¥¹¥ì¥Ã¥É¤ÇƱ¤¸¤Ç¤¢¤ë¡£
¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤È½èÍýÂÔ¤Á¥·¥°¥Ê¥ë
¥·¥°¥Ê¥ë¤Ï ¥Ö¥í¥Ã¥¯ (block) ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤È¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï ¤½¤Î¸å¥Ö¥í¥Ã¥¯¤ò²ò½ü¤µ¤ì¤ë¤Þ¤ÇÇÛÁ÷¤µ¤ì¤Ê¤¯¤Ê¤ë¡£ ¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤Æ¤«¤éÇÛÁ÷¤µ¤ì¤ë¤Þ¤Ç¤Î´Ö¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï ½èÍýÂÔ¤Á (pending) ¤Ç¤¢¤ë¤È¸Æ¤Ð¤ì¤ë¡£¥×¥í¥»¥¹Æâ¤Î³Æ¥¹¥ì¥Ã¥É¤Ï¡¢¤½¤ì¤¾¤ìÆÈΩ¤Ê ¥·¥°¥Ê¥ë¥Þ¥¹¥¯ (signal mask) ¤ò»ý¤Ä¡£¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤¬¸½ºß¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤ë ¥·¥°¥Ê¥ë½¸¹ç¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ ¥¹¥ì¥Ã¥É¤Ï¡¢ pthread_sigmask(3) ¤ò»È¤Ã¤Æ¼«Ê¬¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÁàºî¤Ç¤¤ë¡£ ÅÁÅýŪ¤Ê¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ sigprocmask(2) ¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÁàºî¤Ç¤¤ë¡£
À¸À®¤µ¤ì¤ë¥·¥°¥Ê¥ë (¤·¤¿¤¬¤Ã¤Æ½èÍýÂÔ¤Á¤È¤Ê¤ë¥·¥°¥Ê¥ë) ¤Ë¤Ï¡¢ ¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤ÈÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Æ¤¬¤¢¤ë¡£ Î㤨¤Ð¡¢¥×¥í¥»¥¹Á´Âΰ¸¤Æ¤Î¥·¥°¥Ê¥ë¤Ï kill(2) ¤ò»È¤Ã¤ÆÁ÷¿®¤µ¤ì¤ë¡£ ÆÃÄê¤Î¥Þ¥·¥ó¸ì¤ÎÌ¿Îá¤Î¼Â¹Ô¤Î·ë²Ì¤È¤·¤ÆÀ¸À®¤µ¤ì¤ë¡¢ SIGSEGV ¤ä SIGFPE ¤Ê¤É¤Î¥·¥°¥Ê¥ë¤Ï¡¢¥¹¥ì¥Ã¥É°¸¤Æ¤È¤Ê¤ë¡£ ¤Þ¤¿¡¢ pthread_kill(2) ¤ò»È¤Ã¤ÆÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Æ¤ËÀ¸À®¤µ¤ì¤¿¥·¥°¥Ê¥ë¤â ¥¹¥ì¥Ã¥É°¸¤Æ¤È¤Ê¤ë¡£ ¥×¥í¥»¥¹°¸¤Æ¤Î¥·¥°¥Ê¥ë¤Ï¡¢¤½¤Î¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤¥¹¥ì¥Ã¥É¤Î¤¦¤Á ¤¤¤º¤ì¤«¤Î°ì¤Ä¤ËÇÛÁ÷¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£¤½¤Î¥·¥°¥Ê¥ë¤ò¥Ö¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤ ¥¹¥ì¥Ã¥É¤¬Ê£¿ô¤¢¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ë¥¹¥ì¥Ã¥É¤Ï¥«¡¼¥Í¥ë¤¬ ̵ºî°Ù¤ËÁªÂò¤¹¤ë¡£
¥¹¥ì¥Ã¥É¤Ï¡¢ sigpending(2) ¤ò»È¤Ã¤Æ¡¢¸½ºß½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë½¸¹ç¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£ ¤³¤Î½¸¹ç¤Ï¡¢¥×¥í¥»¥¹°¸¤Æ¤Î½èÍýÂÔ¤Á¥·¥°¥Ê¥ë¤È ¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É°¸¤Æ¤Î¥·¥°¥Ê¥ë¤ÎξÊý¤«¤é¹½À®¤µ¤ì¤ë¡£
ɸ½à¥·¥°¥Ê¥ë
Linux ¤Ï°Ê²¼¤Ë¼¨¤¹É¸½à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤Æ¤¤¤ë¡£ ¥·¥°¥Ê¥ëÈÖ¹æ¤Î°ìÉô¤Ï¥¢¡¼¥¥Æ¥¯¥Á¥ã°Í¸¤Ç¤¢¤ê¡¢"ÃÍ" Íó¤Ë¼¨¤¹Ä̤ê¤Ç¤¢¤ë¡£ (3¤Ä¤ÎÃͤ¬½ñ¤«¤ì¤Æ¤¤¤ë¤â¤Î¤Ï¡¢ 1¤ÄÌܤ¬ alpha ¤È sparc ¤ÇÄ̾ï͸ú¤ÊÃÍ¡¢ ¿¿¤óÃæ¤¬ i386, ppc, sh ¤Ç¤ÎÃÍ¡¢ºÇ¸å¤¬ mips ¤Ç¤ÎÃͤǤ¢¤ë¡£ - ¤Ï¤½¤Î¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤ÆÂбþ¤¹¤ë¥·¥°¥Ê¥ë¤¬¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£)ºÇ½é¤Ë¡¢POSIX.1-1990 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£
¥·¥°¥Ê¥ë | ÃÍ | ưºî | ¥³¥á¥ó¥È |
| | | |
SIGINT | 2 | Term | ¥¡¼¥Ü¡¼¥É¤«¤é¤Î³ä¤ê¹þ¤ß (Interrupt) |
SIGQUIT | 3 | Core | ¥¡¼¥Ü¡¼¥É¤Ë¤è¤ëÃæ»ß (Quit) |
SIGILL | 4 | Core | ÉÔÀµ¤ÊÌ¿Îá |
SIGABRT | 6 | Core | abort(3) ¤«¤é¤ÎÃæÃÇ (Abort) ¥·¥°¥Ê¥ë |
SIGFPE | 8 | Core | ÉâÆ°¾®¿ôÅÀÎã³° |
SIGKILL | 9 | Term | Kill ¥·¥°¥Ê¥ë |
SIGSEGV | 11 | Core | ÉÔÀµ¤Ê¥á¥â¥ê»²¾È |
SIGPIPE | 13 | Term | ¥Ñ¥¤¥×Ç˲õ: ÆÉ¤ß¼ê¤Î̵¤¤¥Ñ¥¤¥×¤Ø¤Î½ñ¤½Ð¤· |
SIGALRM | 14 | Term | alarm(2) ¤«¤é¤Î¥¿¥¤¥Þ¡¼¥·¥°¥Ê¥ë |
SIGTERM | 15 | Term | ½ªÎ» (termination) ¥·¥°¥Ê¥ë |
SIGUSR1 | 30,10,16 | Term | ¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 1 |
SIGUSR2 | 31,12,17 | Term | ¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 2 |
SIGCHLD | 20,17,18 | Ign | »Ò¥×¥í¥»¥¹¤Î°ìöÄä»ß (stop) ¤Þ¤¿¤Ï½ªÎ» |
SIGCONT | 19,18,25 | Cont | °ìöÄä»ß (stop) ¤«¤é¤ÎºÆ³« |
SIGSTOP | 17,19,23 | Stop | ¥×¥í¥»¥¹¤Î°ìöÄä»ß (stop) |
SIGTSTP | 18,20,24 | Stop | üËö (tty) ¤è¤êÆþÎϤµ¤ì¤¿°ìöÄä»ß (stop) |
SIGTTIN | 21,21,26 | Stop | ¥Ð¥Ã¥¯¥°¥é¥ó¥É¥×¥í¥»¥¹¤Î tty ÆþÎÏ |
SIGTTOU | 22,22,27 | Stop | ¥Ð¥Ã¥¯¥°¥é¥ó¥É¥×¥í¥»¥¹¤Î tty ½ÐÎÏ |
¥·¥°¥Ê¥ë SIGKILL ¤È SIGSTOP ¤Ï¥¥ã¥Ã¥Á¡¢¥Ö¥í¥Ã¥¯¡¢Ìµ»ë¤Ç¤¤Ê¤¤¡£
¼¡¤Ë¡¢ POSIX.1-1990 ɸ½à¤Ë¤Ï¤Ê¤¤¤¬¡¢ SUSv2 ¤È POSIX.1-2001 ¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£
¥·¥°¥Ê¥ë | ÃÍ | ưºî | ¥³¥á¥ó¥È |
| | | |
SIGPOLL | Term | ¥Ý¡¼¥ê¥ó¥°²Äǽ¤Ê¥¤¥Ù¥ó¥È (Sys V)¡£ SIGIO¤ÈƱµÁ | |
SIGPROF | 27,27,29 | Term | profiling ¥¿¥¤¥Þ¤Î»þ´ÖÀÚ¤ì |
SIGSYS | 12,-,12 | Core | ¥ë¡¼¥Á¥ó¤Ø¤Î°ú¤¿ô¤¬ÉÔÀµ (SVr4) |
SIGTRAP | 5 | Core | ¥È¥ì¡¼¥¹/¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È ¥È¥é¥Ã¥× |
SIGURG | 16,23,21 | Ign | ¥½¥±¥Ã¥È¤Î¶ÛµÞ»öÂÖ (urgent condition) (4.2BSD) |
SIGVTALRM | 26,26,28 | Term | ²¾ÁÛ¥¢¥é¡¼¥à¥¯¥í¥Ã¥¯ (4.2BSD) |
SIGXCPU | 24,24,30 | Core | CPU»þ´ÖÀ©¸ÂͲá (4.2BSD) |
SIGXFSZ | 25,25,31 | Core | ¥Õ¥¡¥¤¥ë¥µ¥¤¥ºÀ©¸Â¤ÎͲá (4.2BSD) |
Linux 2.2 °ÊÁ°¤Ç¤Ï¡¢ SIGSYS, SIGXCPU, SIGXFSZ ¤ª¤è¤Ó SPARC ¤È MIPS °Ê³°¤Î¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ç¤Î SIGBUS ¤Î¥Ç¥Õ¥©¥ë¥È¤Î¿¶¤ëÉñ¤¤¤Ï (¥³¥¢¥À¥ó¥×½ÐÎϤʤ·¤Î) ¥×¥í¥»¥¹½ªÎ»¤Ç¤¢¤Ã¤¿¡£ (¾¤Î Unix ¥·¥¹¥Æ¥à¤Ë¤â SIGXCPU ¤È SIGXFSZ ¤Î¥Ç¥Õ¥©¥ë¥È¤Îưºî¤¬¥³¥¢¥À¥ó¥×¤Ê¤·¤Î¥×¥í¥»¥¹½ªÎ»¤Î¤â¤Î¤¬¤¢¤ë¡£) Linux 2.4 ¤Ç¤Ï¡¢POSIX.1-2001 ¤Ç¤ÎÍ×µá»ÅÍͤ˽àµò¤·¤Æ¡¢ ¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ç¡¢¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¡¢¥³¥¢¥À¥ó¥×¤ò½ÐÎϤ¹¤ë ¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
¼¡¤Ë¤½¤Î¾¤Î³Æ¼ï¥·¥°¥Ê¥ë¤ò¼¨¤¹¡£
¥·¥°¥Ê¥ë | ÃÍ | ưºî | ¥³¥á¥ó¥È |
| | | |
SIGEMT | 7,-,7 | ||
SIGSTKFLT | -,16,- | A | ¿ôÃͱ黻¥×¥í¥»¥Ã¥µ¤Ë¤ª¤±¤ë¥¹¥¿¥Ã¥¯¥Õ¥©¥ë¥È (̤»ÈÍÑ) |
SIGIO | 23,29,22 | A | Æþ½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿ (4.2BSD) |
SIGCLD | -,-,18 | SIGCHLD ¤ÈƱµÁ | |
SIGPWR | 29,30,19 | A | ÅŸ»ÁÓ¼º (Power failure) (System V) |
SIGINFO | 29,-,- | SIGPWR ¤ÈƱµÁ | |
SIGLOST | -,-,- | A | ¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤¬¼º¤ï¤ì¤¿ |
SIGWINCH | 28,28,20 | B | ¥¦¥£¥ó¥É¥¦ ¥ê¥µ¥¤¥º ¥·¥°¥Ê¥ë (4.3BSD, Sun) |
SIGUNUSED | -,31,- | A | ̤»ÈÍÑ¥·¥°¥Ê¥ë (SIGSYS ¤È¤Ê¤ë¤À¤í¤¦) |
(¥·¥°¥Ê¥ë 29 ¤Ï alpha ¤Ç¤Ï SIGINFO / SIGPWR ¤À¤¬¡¢sparc ¤Ç¤Ï SIGLOST ¤Ç¤¢¤ë¡£)
SIGEMT ¤Ï POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢ ¤½¤Î¾¤Î¿¤¯¤Î Unix ¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£ ¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï¿¤¯¤Î¾ì¹ç¡¢¥³¥¢¥À¥ó¥×½ÐÎϤòȼ¤¦¥×¥í¥»¥¹¤Î½ªÎ»¤Ç¤¢¤ë¡£
SIGPWR ¤Ï (POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬) ¤³¤Î¥·¥°¥Ê¥ë¤¬Â¸ºß¤¹¤ë ¾¤Î Unix ¥·¥¹¥Æ¥à¤Ç¤Ï¿¤¯¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥Èưºî¤Ï̵»ë¤Ç¤¢¤ë¡£
SIGIO ¤Ï (POSIX.1-2001 ¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬) ¤¤¤¯¤Ä¤«¤Î¾¤Î Unix ¥·¥¹¥Æ¥à¤Ç¤Ï ¥Ç¥Õ¥©¥ë¥Èưºî¤Ï̵»ë¤Ç¤¢¤ë¡£
¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë
Linux ¤Ï ¸µ¡¹¤Ï POSIX.1b ¥ê¥¢¥ë¥¿¥¤¥à³ÈÄ¥¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê (º£¤Ç¤Ï POSIX.1-2001 ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë) ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤Æ¤¤¤ë¡£ Linux ¤Ï 32 ¸Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ËÂбþ¤·¤Æ¤ª¤ê¡¢ 32 (SIGRTMIN) ¤«¤é 63 (SIGRTMAX) ¤ÎÈֹ椬¿¶¤é¤ì¤Æ¤¤¤ë¡£ (¥×¥í¥°¥é¥à¤Ç¤Ï¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò»È¤¦¤È¤¤Ï¾ï¤Ë SIGRTMIN+n ¤Î·Á¤Ç»²¾È¤¹¤Ù¤¤Ç¤¢¤ë¡£¤Ê¤¼¤Ê¤é¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤Ï Unix ¤Î¼ïÎà¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¤«¤é¤Ç¤¢¤ë)ɸ½à¥·¥°¥Ê¥ë¤È°Û¤Ê¤ê¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ë¤Ï »öÁ°¤ËÄêµÁ¤µ¤ì¤¿°ÕÌ£¤Ï¤Ê¤¤¡£ ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÁ´Éô¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÄêµÁ¤·¤¿ÍÑÅӤ˻Ȥ¨¤ë¡£ (⤷¡¢LinuxThreads ¼ÂÁõ¤Ç¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤Î¤¦¤Á ºÇ½é¤Î 3¤Ä¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È)
¥Ï¥ó¥É¥ê¥ó¥°¤·¤Ê¤¤¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï ¼õ¿®¤·¤¿¥×¥í¥»¥¹¤Î½ªÎ»¤Ç¤¢¤ë¡£
¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ï°Ê²¼¤ÎÆÃħ¤¬¤¢¤ë:
- 1.
- ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÏÊ£¿ô¤Î¼ÂÂΤò¥¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤¤ë¡£ °ìÊý¡¢É¸½à¥·¥°¥Ê¥ë¤Î¾ì¹ç¡¢¤½¤Î¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë´Ö¤Ë Ʊ¤¸¥·¥°¥Ê¥ë¤ÎÊ£¿ô¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤¬ÇÛÁ÷¤µ¤ì¤Æ¤â¡¢ 1 ¤Ä¤À¤±¤¬¥¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¡£
- 2.
- ¥·¥°¥Ê¥ë¤¬ sigqueue(2) ¤òÍѤ¤¤ÆÁ÷¿®¤µ¤ì¤¿¾ì¹ç¡¢ ÉÕ°¥Ç¡¼¥¿ (À°¿ô¤«¥Ý¥¤¥ó¥¿) ¤ò¥·¥°¥Ê¥ë¤È¶¦¤ËÁ÷¿®¤Ç¤¤ë¡£ ¼õ¿®Â¦¥×¥í¥»¥¹¤¬ sigaction(2) ¤Ë SA_SIGINFO ¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤷ¤¿¾ì¹ç¡¢ ¤³¤Î¥Ç¡¼¥¿¤Ï siginfo_t ¹½Â¤ÂΤΠsi_value ¥Õ¥£¡¼¥ë¥É·Ðͳ¤Ç¥Ï¥ó¥É¥é¤ÎÂè 2 °ú¤¿ô¤È¤·¤ÆÅϤµ¤ì¡¢ ÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£ ¤µ¤é¤Ë¡¢¤³¤Î¹½Â¤ÂΤΠsi_pid ¤È si_uid ¥Õ¥£¡¼¥ë¥É¤Ç¥·¥°¥Ê¥ë¤òÁ÷¿®¤·¤¿¥×¥í¥»¥¹¤Î PID ¤È¼Â¥æ¡¼¥¶ ID ¤ò ÆÀ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
- 3.
- ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤Ç¤ÏÇÛÁ÷¤µ¤ì¤ë½ç½ø¤¬Êݾڤµ¤ì¤ë¡£ Ʊ¤¸¥¿¥¤¥×¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÏÁ÷¿®¤µ¤ì¤¿½çÈÖ¤ËÅþÃ夹¤ë¡£ °Û¤Ê¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤¬°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÁ÷¿®¤µ¤ì¤¿¾ì¹ç¡¢ ÈÖ¹æ¤Î¾®¤µ¤¤¥·¥°¥Ê¥ë¤«¤éÀè¤ËÅþÃ夹¤ë¡£ (¤Ä¤Þ¤ê¾®¤µ¤¤ÈÖ¹æ¤Î¥·¥°¥Ê¥ë¤¬¹â¤¤Í¥Àè½ç°Ì¤ò»ý¤Ä¡£)
°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÂФ·¤ÆÉ¸½à¥·¥°¥Ê¥ë¤È¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ÎξÊý¤¬ ½èÍýÂÔ¤Á¤Î¾ì¹ç¡¢POSIX ¤Ï¤É¤Á¤é¤¬Àè¤ËÇÛÁ÷¤µ¤ì¤ë¤«¤òµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£ Linux ¤Ç¤Ï¡¢Â¾¤Î¿¤¯¤Î¼ÂÁõ¤ÈƱÍÍ¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï ɸ½à¥·¥°¥Ê¥ë¤¬Í¥À褵¤ì¤ë¡£
POSIX ¤Ë¤è¤ì¤Ð¡¢1 ¥×¥í¥»¥¹Ëè¤ËºÇÄã _POSIX_SIGQUEUE_MAX (32) ¸Ä¤Î ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò¥¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¤Ù¤¤È¤·¤Æ¤¤¤ë¡£ ¤·¤«¤·¡¢ Linux ¤Ç¤Ï°ã¤Ã¤¿¼ÂÁõ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¥«¡¼¥Í¥ë 2.6.7 ¤Þ¤Ç¤Ï (2.6.7 ¤ò´Þ¤à)¡¢Á´¥×¥í¥»¥¹¤Ç¥¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë ¤Î¿ô¤Î¹ç·×¤Ë¤Ä¤¤¤Æ¥·¥¹¥Æ¥àÁ´ÂΤǤÎÀ©¸Â¤¬¤¢¤ë¡£ ¤³¤ÎÀ©¸Â¤Ï /proc/sys/kernel/rtsig-max ¥Õ¥¡¥¤¥ë¤Ç¸«¤ë¤³¤È¤¬¤Ç¤¡¢ (¸¢¸Â¤¬¤¢¤ì¤Ð) Êѹ¹¤â¤Ç¤¤ë¡£ ´Ø·¸¤¹¤ë¥Õ¥¡¥¤¥ë¤È¤·¤Æ¡¢ /proc/sys/kernel/rtsig-nr ¤ò¸«¤ë¤³¤È¤Ç¡¢¤¤¤¯¤Ä¤Î¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤¬¸½ºß¥¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¤«¤ò ÃΤ뤳¤È¤¬¤Ç¤¤ë¡£ Linux 2.6.8 ¤Ç¡¢¤³¤ì¤é¤Î /proc ·Ðͳ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢ RLIMIT_SIGPENDING ¥ê¥½¡¼¥¹À©¸Â¤ËÃÖ¤´¹¤¨¤é¤ì¤¿¡£ ¤³¤ì¤Ï¡¢¥¥å¡¼¤ËÆþ¤ë¥·¥°¥Ê¥ë¿ô¤Ë´Ø¤·¤Æ¥æ¡¼¥¶Ã±°Ì¤Ë ¾å¸Â¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤¢¤ë¡£ ¾Ü¤·¤¯¤Ï setrlimit(2) ¤ò»²¾È¡£
È󯱴ü¥·¥°¥Ê¥ë¤Ç°ÂÁ´¤Ê´Ø¿ô (async-signal-safe functions)
¾¤Î¾ì½ê¤Î½èÍý¤Ï¥×¥í¥°¥é¥à¼Â¹Ô¤ÎǤ°Õ¤Î²Õ½ê¤ÇÃæÃǤµ¤ì¤ë¤¿¤á¡¢ sigaction(2) ¤ä signal(2) ¤ÇÅÐÏ¿¤¹¤ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Ë¤ÏÈó¾ï¤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ POSIX ¤Ë¤Ï¡Ö°ÂÁ´¤Ê´Ø¿ô (safe function)¡×¤È¤¤¤¦³µÇ°¤¬¤¢¤ë¡£ ¥·¥°¥Ê¥ë¤¬°ÂÁ´¤Ç¤Ê¤¤´Ø¿ô¤Î¼Â¹Ô¤òÃæÃǤ·¡¢¤«¤Ä handler ¤¬°ÂÁ´¤Ç¤Ê¤¤´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢¥×¥í¥°¥é¥à¤Îµóư¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ POSIX.1-2003 ¤Ç¤Ï¡¢ ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÆâ¤Ç¤Î°ÂÁ´¤Ê¸Æ¤Ó½Ð¤·¤òÊݾڤ¹¤ë¤³¤È¤¬É¬¿Ü¤Î´Ø¿ô¤È¤·¤Æ °Ê²¼¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
_Exit() _exit() abort() accept() access() aio_error() aio_return() aio_suspend() alarm() bind() cfgetispeed() cfgetospeed() cfsetispeed() cfsetospeed() chdir() chmod() chown() clock_gettime() close() connect() creat() dup() dup2() execle() execve() fchmod() fchown() fcntl() fdatasync() fork() fpathconf() fstat() fsync() ftruncate() getegid() geteuid() getgid() getgroups() getpeername() getpgrp() getpid() getppid() getsockname() getsockopt() getuid() kill() link() listen() lseek() lstat() mkdir() mkfifo() open() pathconf() pause() pipe() poll() posix_trace_event() pselect() raise() read() readlink() recv() recvfrom() recvmsg() rename() rmdir() select() sem_post() send() sendmsg() sendto() setgid() setpgid() setsid() setsockopt() setuid() shutdown() sigaction() sigaddset() sigdelset() sigemptyset() sigfillset() sigismember() signal() sigpause() sigpending() sigprocmask() sigqueue() sigset() sigsuspend() sleep() socket() socketpair() stat() symlink() sysconf() tcdrain() tcflow() tcflush() tcgetattr() tcgetpgrp() tcsendbreak() tcsetattr() tcsetpgrp() time() timer_getoverrun() timer_gettime() timer_settime() times() umask() uname() unlink() utime() wait() waitpid() write().
½àµò
POSIX.1¥Ð¥°
SIGIO ¤È SIGLOST ¤ÏƱ¤¸Ãͤò»ý¤Ã¤Æ¤¤¤ë¡£ SIGLOST ¤Ï¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤Ç¤Ï¥³¥á¥ó¥È¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤ë¡£ ¤·¤«¤·¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤Ã¤Æ¤Ï¥Ó¥ë¥É¤Î²áÄø¤Ç¥·¥°¥Ê¥ë 29 ¤ò SIGLOST ¤È¤ß¤Ê¤·¤Æ¤·¤Þ¤¦¤â¤Î¤¬¤¢¤ë¡£´ØÏ¢¹àÌÜ
kill(1), kill(2), killpg(2), setitimer(2), setrlimit(2), sigaction(2), signal(2), sigpending(2), sigprocmask(2), sigqueue(2), sigsuspend(2), sigwaitinfo(2), bsd_signal(3), raise(3), sigvec(3), sigset(3), strsignal(3), sysv_signal(3), core(5), proc(5), pthreads(7)Contenus ©2006-2023 Benjamin Poulain
Design ©2006-2023 Maxime Vantorre