Rechercher une page de manuel
signal
Langue: ja
Version: 2000-04-28 (openSuse - 09/10/07)
Section: 2 (Appels système)
̾Á°
signal - ANSI C ¥·¥°¥Ê¥ëÁàºî½ñ¼°
#include <signal.h>typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t sighandler);
ÀâÌÀ
signal() ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï signum ¤Ç»ØÄꤵ¤ì¤¿ÈÖ¹æ¤Î¥·¥°¥Ê¥ë¤Ë ¿·¤·¤¤¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤òÀßÄꤹ¤ë¡£ ¤³¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤Ï handler ¤ËÀßÄꤵ¤ì¤ë¡£ handler ¤Ï¡¢¥æ¡¼¥¶¡¼¤Î»ØÄꤷ¤¿´Ø¿ô¡¢ SIG_IGN¡¢ SIG_DFL ¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£¥·¥°¥Ê¥ëÈÖ¹æ signum ¤Î¥·¥°¥Ê¥ë¤ò¼õ¤±¤ë¤È¼¡¤Î¤è¤¦¤Ëưºî¤¹¤ë¡£ Âбþ¤¹¤ë¥Ï¥ó¥É¥é¡¼¤¬ SIG_IGN ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥·¥°¥Ê¥ë¤Ï̵»ë¤µ¤ì¤ë¡£ ¥Ï¥ó¥É¥é¡¼¤¬ SIG_DFL ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥·¥°¥Ê¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿ ¥Ç¥Õ¥©¥ë¥È¤Îưºî¤ò¹Ô¤¦ (signal(7) ¤ò»²¾È)¡£ ¥Ï¥ó¥É¥é¡¼¤¬´Ø¿ô handler ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤Þ¤ººÇ½é¤Ë¥Ï¥ó¥É¥é¡¼¤¬ SIG_DFL ¤Ë¥ê¥»¥Ã¥È¤µ¤ì (¤¢¤ë¤¤¤Ï¼ÂÁõ¤Ë°Í¸¤¹¤ë¥·¥°¥Ê¥ë¤Î¥Ö¥í¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì)¡¢ ¼¡¤Ë signum ¤ò°ú¤¿ô¤È¤·¤Æ handler ¤¬¸Æ¤Ð¤ì¤ë¡£
¥·¥°¥Ê¥ë¤ËÂФ·¤Æ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¡¼´Ø¿ô¤ò»È¤¦¤³¤È¤Ï¡¢ ¡Ö¥·¥°¥Ê¥ë¤Î¥¥ã¥Ã¥Á¡×¤È¸Æ¤Ð¤ì¤ë¡£ ¥·¥°¥Ê¥ë SIGKILL ¤È SIGSTOP ¤Ï¥¥ã¥Ã¥Á¤Ç¤¤º¡¢Ìµ»ë¤¹¤ë¤³¤È¤â¤Ç¤¤Ê¤¤¡£
ÊÖ¤êÃÍ
signal() ´Ø¿ô¤Ïº£¤Þ¤Ç¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤ÎÃͤòÊÖ¤¹¤«¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï SIG_ERR ¤òÊÖ¤¹¡£½àµò
C89, C99, POSIX.1-2001.Ãí°Õ
¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥»¥¹¤Ë¤ª¤±¤ë¤³¤Î´Ø¿ô¤Î·ë²Ì¤Ï¡¢»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£POSIX ¤Ë¤è¤ë¤È¡¢ kill(2) ¤ä raise(3) ´Ø¿ô¤ÇÀ¸À®¤Ç¤¤Ê¤¤ SIGFPE, SIGILL, SIGSEGV ¥·¥°¥Ê¥ë¤ò̵»ë¤·¤¿¸å¤Îưºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ 0 ¤Ë¤è¤ëÀ°¿ô³ä¤ê»»¤Î·ë²Ì¤Ï̤ÄêµÁ¤È¤Ê¤ë¡£ ¤¢¤ë¼ï¤Î¥¢¡¼¥¥Æ¥¯¥Á¥ã¡¼¤Ç¤Ï¡¢¤³¤ì¤Ï SIGFPE ¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ë¡£ (ƱÍͤËÉé¤ÎºÇÂçÀ°¿ô¤ò -1 ¤Ç³ä¤ë¤È SIGFPE ¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£) ¤³¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤È̵¸Â¥ë¡¼¥×¤Ë´Ù¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
SIGCHLD ¤Îưºî¤È¤·¤Æ SIG_IGN ¤òÀßÄꤷ¤¿¾ì¹ç¤Î¾ÜºÙ¤Êưºî¤Ë¤Ä¤¤¤Æ¤Ï¡¢ sigaction(2) ¤ò»²¾È¤¹¤ë¤³¤È¡£
¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÆâ¤«¤é°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤¤ë¡¢ async-signal-safe functions (È󯱴ü¥·¥ó¥°¥ë¤Ç°ÂÁ´¤Ê´Ø¿ô) ¤Î ¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï signal(7) ¤ò»²¾È¡£
sighandler_t ¤Î»ÈÍÑ¤Ï GNU ³ÈÄ¥¤Ç¤¢¤ë¡£ ³Æ¼ï¥Ð¡¼¥¸¥ç¥ó¤Î libc ¤Ç¤³¤Î·¿¤ÏÄêµÁºÑ¤ß¤Ç¤¢¤ë; libc4 ¤È libc5 ¤Ç¤Ï SignalHandler ¤òÄêµÁ¤·¤Æ¤¤¤ë¡£ glibc ¤Ç¤Ï sig_t ¤òÄêµÁ¤·¤Æ¤ª¤ê¡¢ _GNU_SOURCE ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï sighandler_t ¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
°Ü¿¢À
Unix ¤Î¥ª¥ê¥¸¥Ê¥ë¤Î signal() ¤Ï¥Ï¥ó¥É¥é¡¼¤ò SIG_DFL ¤Ë¥ê¥»¥Ã¥È¤¹¤ë¡£ System V (¤È Linux ¥«¡¼¥Í¥ë¤È libc4,5) ¤âƱ¤¸¤Ç¤¢¤ë¡£ °ìÊý¡¢BSD ¤Ç¤Ï¥Ï¥ó¥É¥é¡¼¤Î¥ê¥»¥Ã¥È¤ò¹Ô¤ï¤º¡¢ ¥Ï¥ó¥É¥é¡¼¤¬¸Æ¤Ð¤ì¤Æ¤¤¤ë´Ö¤Ë ¥·¥°¥Ê¥ë¤Î¿·¤·¤¤¥¤¥ó¥¹¥¿¥ó¥¹¤¬È¯À¸¤¹¤ë¤Î¤ò¥Ö¥í¥Ã¥¯¤¹¤ë¡£ glibc2 ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï BSD ¤Îưºî¤Ë½¾¤Ã¤Æ¤¤¤ë¡£libc5 ¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ <signal.h> ¤Î¤«¤ï¤ê¤Ë <bsd/signal.h> ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤È¡¢ signal() ¤Ï __bsd_signal ¤ËºÆÄêµÁ¤µ¤ì¤Æ BSD Êý¼°¤È¤Ê¤ë¡£ ¤³¤ì¤Ï¿ä¾©¤µ¤ì¤Ê¤¤¡£
glibc2 ¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ _XOPEN_SOURCE ¤Î¤è¤¦¤Êµ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤¿¤ê¡¢¤³¤Î´Ø¿ô¤È¤ÏÊ̤Πsysv_signal ´Ø¿ô¤ò»È¤Ã¤¿¤ê¤¹¤ì¤Ð¡¢°ÊÁ°¤Î¤è¤¦¤Êưºî¤ò¤¹¤ë¡£ ¤³¤ì¤Ï¿ä¾©¤µ¤ì¤Ê¤¤¡£
¥Þ¥¯¥í¤ÎÄêµÁ¤ä¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ç ¤³¤Î´Ø¿ô¤ÎÊý¼°¤òÊѹ¹¤·¤è¤¦¤È¤¹¤ë¤Î¤Ï¡¢Îɤ¯¤Ê¤¤¹Í¤¨Êý¤Ç¤¢¤ë¡£ signal() ¤ò»È¤¦¤Î¤ò´°Á´¤ËÈò¤±¤Æ¡¢Âå¤ï¤ê¤Ë sigaction(2) ¤ò»È¤Ã¤¿Êý¤¬Îɤ¤¡£
´ØÏ¢¹àÌÜ
kill(1), alarm(2), kill(2), pause(2), sigaction(2), sigpending(2), sigprocmask(2), sigqueue(2), sigsuspend(2), bsd_signal(3), killpg(3), raise(3), sigsetops(3), sigvec(3), sysv_signal(3), feature_test_macros(7), signal(7)Contenus ©2006-2023 Benjamin Poulain
Design ©2006-2023 Maxime Vantorre