Rechercher une page de manuel
sigaction
Langue: ja
Version: 2005-09-15 (openSuse - 09/10/07)
Section: 2 (Appels système)
̾Á°
sigaction - ¥·¥°¥Ê¥ë¤ÎÆ°ºî¤Î³Îǧ¤ÈÊѹ¹½ñ¼°
#include <signal.h> int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
ÀâÌÀ
sigaction() ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ÆÃÄê¤Î¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿ºÝ¤Î ¥×¥í¥»¥¹¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£signum ¤Ë¤Ï¡¢ SIGKILL ¤È SIGSTOP °Ê³°¤Î͸ú¤Ê¥·¥°¥Ê¥ë¤ò¤É¤ì¤Ç¤â»ØÄê¤Ç¤¤ë¡£
act ¤¬ NULL °Ê³°¤Ç¤¢¤ì¤Ð¡¢¥·¥°¥Ê¥ë signum ¤Î¿·¤·¤¤Æ°ºî (action) ¤È¤·¤Æ act ¤¬ÀßÄꤵ¤ì¤ë¡£ oldact ¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢º£¤Þ¤Ç¤ÎÆ°ºî¤¬ oldact ¤Ë³ÊǼ¤µ¤ì¤ë¡£
sigaction ¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ê´¶¤¸¤ËÄêµÁ¤µ¤ì¤ë¡£
-
struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void); }
¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤Æ¤Ï¶¦ÍÑÂÎ (union) ¤¬ÍѤ¤¤é¤ì¤Æ¤ª¤ê¡¢¤½¤Î¾ì¹ç¤Ë¤Ï sa_handler ¤È sa_sigaction ¤ÎξÊý¤òƱ»þ¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£
sa_restorer Í×ÁǤÏÇÑ»ßͽÄê¤Ç¤¢¤ê»ÈÍѤ¹¤Ù¤¤Ç¤Ï¤Ê¤¤¡£ POSIX ¤Ë¤Ï sa_restorer Í×ÁǤ˴ؤ¹¤ëµ¬Äê¤Ï¤Ê¤¤¡£
sa_handler ¤Ï signum ¤ËÂбþ¤¹¤ëÆ°ºî¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¡¢ ¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤ò¹Ô¤¦ SIG_DFL¡¢ ¤½¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë SIG_IGN¡¢ ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÀßÄê¤Ç¤¤ë¡£ ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é´Ø¿ô¤Î°ú¤¿ô¤Ï°ì¤Ä¤Ç¤¢¤ê¡¢¥·¥°¥Ê¥ëÈֹ椬°ú¤¿ô¤È¤·¤Æ ÅϤµ¤ì¤ë¡£
sa_flags ¤Ë SA_SIGINFO ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ (sa_handler ¤Ç¤Ï¤Ê¤¯) sa_sigaction ¤Ë¤è¤ê signum ¤ËÂбþ¤¹¤ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥ë´Ø¿ô¤¬»ØÄꤵ¤ì¤ë¡£ »ØÄꤵ¤ì¤ë´Ø¿ô¤Ï¡¢ºÇ½é¤Î°ú¤¿ô¤È¤·¤Æ¥·¥°¥Ê¥ëÈÖ¹æ¤ò¡¢ ÆóÈÖÌܤΰú¤¿ô¤È¤·¤Æ siginfo_t ¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¡¢»°ÈÖÌܤΰú¤¿ô¤È¤·¤Æ (void * ¤Ë¥¥ã¥¹¥È¤·¤¿) ucontext_t ¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¼õ¤±¤È¤ë¡£
sa_mask ¤Ï¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¼Â¹ÔÃæ¤Ë¶Ø»ß (block) ¤¹¤ë¥·¥°¥Ê¥ë¤Î¥Þ¥¹¥¯¤òɽ¤¹¡£ ¤µ¤é¤Ë¡¢ SA_NODEFER ¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ï¥ó¥É¥é¤òµ¯Æ°¤¹¤ë¤¤Ã¤«¤±¤È¤Ê¤ë ¥·¥°¥Ê¥ë¤Ë¤â sa_mask ¤¬Å¬ÍѤµ¤ì¤ë¡£
sa_flags ¤Ï¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤ÎÆ°ºî¤òÊѹ¹¤¹¤ë¤¿¤á¤Î¥Õ¥é¥°¤Î½¸¹ç¤ò»ØÄꤹ¤ë¡£ sa_flags ¤Ë¤Ï¡¢°Ê²¼¤Ë¼¨¤¹¥Õ¥é¥°¤Î (0¸Ä°Ê¾å¤Î) ÏÀÍýϤò¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£
-
- SA_NOCLDSTOP
- signum ¤¬ SIGCHLD ¤Î¾ì¹ç¡¢ »Ò¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿¤ê (»Ò¥×¥í¥»¥¹¤¬ SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU ¤ò¼õ¤±¤¿¤È¤) ºÆ³«¤·¤¿¤ê (»Ò¥×¥í¥»¥¹¤¬ SIGCONT ¤ò¼õ¤±¤¿¤È¤) ¤·¤¿¤È¤¤Ë SIGCHLD ¤ÎÄÌÃΤò¼õ¤±¤Ê¤¤¡£
- SA_NOCLDWAIT
- (Linux 2.6 °Ê¹ß) signum ¤¬ SIGCHLD ¤Î¾ì¹ç¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤¤Ë »Ò¥×¥í¥»¥¹¤ò¥¾¥ó¥Ó¥×¥í¥»¥¹¤ËÊѲ½¤µ¤»¤Ê¤¤ (waitpid(2) ¤â»²¾È)¡£
- SA_RESETHAND
- ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬¸Æ¤Ð¤ì¤ëÅ٤ˡ¢¥·¥°¥Ê¥ë¤ÎÆ°ºî¤ò¥Ç¥Õ¥©¥ë¥È¤ËÌ᤹¡£ SA_ONESHOT ¤Ï¤³¤Î¥Õ¥é¥°¤ÈƱ¤¸°ÕÌ£¤À¤¬¡¢Çѻߤµ¤ì¤Æ¤ª¤ê¡¢Èóɸ½à¤Ç¤¢¤ë¡£
- SA_ONSTACK
- sigaltstack(2) ¤ÇÄ󶡤µ¤ì¤ëÊ̤Υ·¥°¥Ê¥ë¡¦¥¹¥¿¥Ã¥¯¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¸Æ¤Ó½Ð¤¹¡£ Ê̤Υ·¥°¥Ê¥ë¡¦¥¹¥¿¥Ã¥¯¤¬ÍøÍѲÄǽ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥¹¥¿¥Ã¥¯¤¬ »ÈÍѤµ¤ì¤ë¡£
- SA_RESTART
- ¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥·¥°¥Ê¥ë¤ÎÄÌÃΤÎÁ°¸å¤ÇºÆ³«¤Ç¤¤ë¤è¤¦¤Ë¤·¤Æ¡¢ BSD ¥·¥°¥Ê¥ëÊý¼° (semantics) ¤È¸ß´¹À¤Î¤¢¤ëÆ°ºî¤òÄ󶡤¹¤ë¡£
- SA_NODEFER
- ¤½¤ì¼«¿È¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤ÎÆâÉô¤Ë¤¤¤ë»þ¤Ç¤â ¤½¤Î¥·¥°¥Ê¥ë¤ò¥Þ¥¹¥¯¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ SA_NOMASK ¤Ï¤³¤Î¥Õ¥é¥°¤ÈƱ¤¸°ÕÌ£¤À¤¬¡¢Çѻߤµ¤ì¤Æ¤ª¤ê¡¢Èóɸ½à¤Ç¤¢¤ë¡£
- SA_SIGINFO
- ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï°ì¤Ä¤Ç¤Ï¤Ê¤¯¡¢»°¤Ä¤Î°ú¤¿ô¤ò»ý¤Ä¡£¤³¤Î¾ì¹ç¤Ï sa_handler ¤Î¤«¤ï¤ê¤Ë sa_sigaction ¤òÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ (sa_sigaction ¥Õ¥£¡¼¥ë¥É¤Ï Linux 2.1.86 ¤ÇÄɲ䵤줿)¡£
sa_sigaction ¤Î¥Ñ¥é¥á¡¼¥¿ siginfo_t ¤Ï°Ê²¼¤ÎÍ×ÁǤò»ý¤Ä¹½Â¤ÂΤǤ¢¤ë:
-
siginfo_t { int si_signo; /* Signal number */ int si_errno; /* An errno value */ int si_code; /* Signal code */ pid_t si_pid; /* Sending process ID */ uid_t si_uid; /* Real user ID of sending process */ int si_status; /* Exit value or signal */ clock_t si_utime; /* User time consumed */ clock_t si_stime; /* System time consumed */ sigval_t si_value; /* Signal value */ int si_int; /* POSIX.1b signal */ void *si_ptr; /* POSIX.1b signal */ void *si_addr; /* Memory location which caused fault */ int si_band; /* Band event */ int si_fd; /* File descriptor */ }
si_signo, si_errno, si_code ¤ÏÁ´¤Æ¤Î¥·¥°¥Ê¥ë¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë (si_signo ¤Ï Linux ¤Ç¤Ï»ÈÍѤµ¤ì¤Ê¤¤)¡£ ¹½Â¤ÂΤλĤê¤ÎÉôʬ¤Ï¡¢¶¦ÍÑÂÎ (union) ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ ¤½¤Î¾ì¹ç¤Ï³ºÅö¤¹¤ë¥·¥°¥Ê¥ë¤Ë¤ª¤¤¤Æ°ÕÌ£¤Î¤¢¤ë¥Õ¥£¡¼¥ë¥É¤Î¤ß¤òÆɤ߹þ¤à ¤³¤È¤¬¤Ç¤¤ë¡£
- *
- POSIX.1b ¥·¥°¥Ê¥ë¤È SIGCHLD ¤Ï si_pid ¤È si_uid ¤òÀßÄꤹ¤ë¡£ .IP* SIGCHLD ¤Ï¤µ¤é¤Ë si_status, si_utime, si_stime ¤âÀßÄꤹ¤ë¡£
- *
- si_int ¤È si_ptr ¤Ï POSIX.1b ¥·¥°¥Ê¥ë¤ÎÁ÷¿®¼Ô¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¡£ ¾ÜºÙ¤Ï sigqueue(2) ¤ò»²¾È¤Î¤³¤È¡£
- *
- SIGILL, SIGFPE, SIGSEGV, SIGBUS ¤Ï si_addr ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¥¢¥É¥ì¥¹¤òÀßÄꤹ¤ë¡£ SIGPOLL ¤Ï si_band ¤È si_fd ¤òÀßÄꤹ¤ë¡£
si_code ¤Ï¡¢¤½¤Î¥·¥°¥Ê¥ë¤¬Á÷¿®¤µ¤ì¤¿Íýͳ¤ò¼¨¤¹¡£¤³¤ì¤ÏÃͤǤ¢¤ê¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤Ï¤Ê¤¤¡£ °Ê²¼¤Îɽ¤Ë¤Ï¤É¤Î¥·¥°¥Ê¥ë¤Î¾ì¹ç¤Ç¤â»ÈÍѤǤ¤ëÃͤòµºÜ¤·¤Æ¤¤¤ë:
si_code | |
Value | Signal origin |
SI_USER | kill(), sigsend(2), or raise(3) |
SI_KERNEL | The kernel |
SI_QUEUE | sigqueue(2) |
SI_TIMER | POSIX timer expired |
SI_MESGQ | POSIX message queue state changed (since Linux 2.6.6) |
SI_ASYNCIO | AIO completed |
SI_SIGIO | queued SIGIO |
SI_TKILL | tkill(2) or tgkill(2) (since Linux 2.4.19) |
SIGILL | |
ILL_ILLOPC | illegal opcode |
ILL_ILLOPN | illegal operand |
ILL_ILLADR | illegal addressing mode |
ILL_ILLTRP | illegal trap |
ILL_PRVOPC | privileged opcode |
ILL_PRVREG | privileged register |
ILL_COPROC | coprocessor error |
ILL_BADSTK | internal stack error |
SIGFPE | |
FPE_INTDIV | integer divide by zero |
FPE_INTOVF | integer overflow |
FPE_FLTDIV | floating point divide by zero |
FPE_FLTOVF | floating point overflow |
FPE_FLTUND | floating point underflow |
FPE_FLTRES | floating point inexact result |
FPE_FLTINV | floating point invalid operation |
FPE_FLTSUB | subscript out of range |
SIGSEGV | |
SEGV_MAPERR | address not mapped to object |
SEGV_ACCERR | invalid permissions for mapped object |
SIGBUS | |
BUS_ADRALN | invalid address alignment |
BUS_ADRERR | non-existent physical address |
BUS_OBJERR | object specific hardware error |
SIGTRAP | |
TRAP_BRKPT | process breakpoint |
TRAP_TRACE | process trace trap |
SIGCHLD | |
CLD_EXITED | child has exited |
CLD_KILLED | child was killed |
CLD_DUMPED | child terminated abnormally |
CLD_TRAPPED | traced child has trapped |
CLD_STOPPED | child has stopped |
CLD_CONTINUED | stopped child has continued (since Linux 2.6.9) |
SIGPOLL | |
POLL_IN | data input available |
POLL_OUT | output buffers available |
POLL_MSG | input message available |
POLL_ERR | i/o error |
POLL_PRI | high priority input available |
POLL_HUP | device disconnected |
ÊÖ¤êÃÍ
sigaction() ¤ÏÀ®¸ù¤¹¤ì¤Ð 0 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤Ê¤é¤Ð -1 ¤òÊÖ¤¹¡£¥¨¥é¡¼
- EFAULT
- act ¤« oldact ¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬Àµ¤·¤¤¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤Ê¤¤¡£
- EINVAL
- ̵¸ú¤Ê¥·¥°¥Ê¥ë¤¬»ØÄꤵ¤ì¤¿¡£Êä (catch) ¤·¤¿¤ê̵»ë¤·¤¿¤ê¤Ç¤¤Ê¤¤ ¥·¥°¥Ê¥ë¤Ç¤¢¤ë SIGKILL ¤ä SIGSTOP ¤ËÂФ¹¤ëÆ°ºî¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤âȯÀ¸¤¹¤ë¡£
½àµò
POSIX.1-2001, SVr4.Ãí°Õ
POSIX ¤Ç¤Ï¡¢ kill(2) ¤ä raise(3) ´Ø¿ô¤ÇÀ¸À®¤Ç¤¤Ê¤¤¥·¥°¥Ê¥ë SIGFPE, SIGILL, SIGSEGV ¤ò̵»ë (ignore) ¤·¤¿¾ì¹ç¡¢¤½¤Î¸å¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£ ¥¼¥í¤Ë¤è¤ëÀ°¿ô³ä¤ê»»¤Î·ë²Ì¤Ï̤ÄêµÁ¤È¤Ê¤ë¡£ ¥¢¡¼¥¥Æ¥¯¥Á¥ã¡¼¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¤È¤ SIGFPE ¥·¥°¥Ê¥ë¤¬À¸À®¤µ¤ì¤ë¡£ (ƱÍͤËÉé¤ÎºÇÂçÀ°¿ô¤ò -1 ¤Ç³ä¤ë¤È SIGFPE ¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤) ¤³¤Î¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤È̵¸Â¥ë¡¼¥×¤Ë´Ù¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
POSIX.1-1990 ¤Ç¤Ï SIGCHLD ¤Ë SIG_IGN ¤òÀßÄꤹ¤ë¤³¤È¤òǧ¤á¤Æ¤¤¤Ê¤¤¡£ POSIX.1-2001 ¤Ç¤Ïǧ¤á¤é¤ì¤Æ¤ª¤ê¡¢ SIGCHLD ¤ò̵»ë¤¹¤ë¤³¤È¤Ç¥¾¥ó¥Ó¥×¥í¥»¥¹¤ÎÀ¸À®¤òËɻߤ¹¤ë¤³¤È¤¬¤Ç¤¤ë (wait(2) ¤ò»²¾È)¡£ ¤µ¤é¤Ë¡¢BSD ¤È SystemV ¤Ç¤Ï SIGCHLD ¤ò̵»ë¤·¤¿ºÝ¤ÎÆ°ºî¤¬°Û¤Ê¤Ã¤Æ¤¤¤ë¡£ ¤½¤Î¤¿¤á¡¢´°Á´¤Ë°Ü¿¢À¤¬¤¢¤ëÊýË¡¤Ç¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤¬¥¾¥ó¥Ó¤Ë¤Ê¤é¤Ê¤¤¤³¤È ¤òÊݾڤ¹¤ë¤Ë¤Ï¡¢ SIGCHLD ¥·¥°¥Ê¥ë¤òÊ䤷¡¢ wait(2) ¤Ê¤É¤ò¼Â¹Ô¤¹¤ë¤·¤«¤Ê¤¤¡£
POSIX.1-1990 ¤Î»ÅÍÍ¤Ç¤Ï SA_NOCLDSTOP ¤Î¤ß¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ POSIX.1-2001 ¤Ç¤Ï SA_NOCLDWAIT, SA_RESETHAND, SA_NODEFER, SA_SIGINFO ¤¬Äɲ䵤줿¡£ Unix ¤Î¸Å¤¤¼ÂÁõ¤ÇÆ°¤«¤¹¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¡¢ ¾¤Î sa_flags ¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤È°Ü¿¢À¤¬²¼¤¬¤ë¡£
SA_SIGINFO ¥Õ¥é¥°¤Ï Linux 2.2 ¤«¤é¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
SA_RESETHAND ¥Õ¥é¥°¤Ï SVr4 ¤ÎƱ¤¸Ì¾Á°¤Î¥Õ¥é¥°¤È¸ß´¹À¤¬¤¢¤ë¡£
SA_NODEFER ¥Õ¥é¥°¤Ï 1.3.9 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤ÏƱ¤¸Ì¾Á°¤Î SVr4 ¤Î¥Õ¥é¥°¤È¸ß´¹À¤¬¤¢¤ë¡£ ¤¾¤ì°ÊÁ°¤Î Linux ¥«¡¼¥Í¥ë¤Î¼ÂÁõ¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤¤¤ë¥·¥°¥Ê¥ë ¤À¤±¤Ç¤Ê¤¯¡¢¤É¤Î¥·¥°¥Ê¥ë¤Ç¤â¼õ¤±¤ë¤³¤È¤òµö¤·¤Æ¤¤¤¿ (¼ÂºÝ¤Ë¤Ï sa_mask ¤ÎÀßÄê¤Ë¤è¤ê̵¸ú¤Ë¤Ç¤¤ë)¡£
sigaction() ¤ÎÆóÈÖÌܤΰú¤¿ô¤Ë NULL ¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¤È¡¢¸½ºß¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò³Îǧ¤¹¤ë ¤³¤È¤¬¤Ç¤¤ë¡£¤Þ¤¿¡¢ÆóÈÖÌܤȻ°ÈÖÌܤΰú¤¿ô¤ò NULL ¤Ë¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢ »ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤¬¸½ºß¤Î¥Þ¥·¥ó¤Ç»È¤¨¤ë¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤Ç¤¤ë¡£
SIGKILL ¤ä SIGSTOP ¤ò (sa_mask ¤Ë»ØÄꤷ¤Æ) ¶Ø»ß¤¹¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£ ¶Ø»ß¤·¤è¤¦¤È¤·¤Æ¤âÌۤäÆ̵»ë¤µ¤ì¤ë¡£
¥·¥°¥Ê¥ë½¸¹ç¤ÎÁàºî¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï sigsetops(3) ¤ò»²¾È¤¹¤ë¤³¤È¡£
¥·¥°¥Ê¥ë¥Ï¥ó¥É¥éÆ⤫¤é°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤¤ë¡¢ async-signal-safe functions (ÈóƱ´ü¥·¥ó¥°¥ë¤Ç°ÂÁ´¤Ê´Ø¿ô) ¤Î ¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï signal(7) ¤ò»²¾È¡£
Èó¸ø¼°
SA_SIGINFO ¤¬Æ³Æþ¤µ¤ì¤ëÁ°¤Ï¡¢ struct sigcontext ·¿¤ÎÆóÈÖÌܤΰú¤¿ô¤È°ì½ï¤Ë sa_handler ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢ ¤¤¤¯¤Ä¤«¤ÎÄɲäξðÊó¤òÆþ¼ê¤¹¤ë¤³¤È¤¬¤Ç¤¤¿¡£ ¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î´ØÏ¢Éôʬ¤ò¸«¤Æ¤Û¤·¤¤¡£ ¸½ºß¤Ï¤³¤Î»ÈÍÑË¡¤ÏÇѻߤµ¤ì¤Æ¤¤¤ë¡£¥Ð¥°
2.6.13 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ sa_flags ¤Ë SA_NODEFER ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ ¥Ï¥ó¥É¥é¤¬¼Â¹ÔÃæ¤ËÇÛÁ÷¤µ¤ì¤¿¥·¥°¥Ê¥ë¼«¿È¤¬¥Þ¥¹¥¯¤µ¤ì¤Ê¤¯¤Ê¤ë¤À¤±¤Ç¤Ê¤¯¡¢ sa_mask ¤Ë»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤â¥Þ¥¹¥¯¤µ¤ì¤Ê¤¯¤Ê¤ë¡£ ¤³¤Î¥Ð¥°¤Ï¡¢¥«¡¼¥Í¥ë 2.6.14 ¤Ç½¤Àµ¤µ¤ì¤¿¡£Îã
mprotect(2) »²¾È¡£´ØÏ¢¹àÌÜ
kill(1), kill(2), pause(2), sigaltstack(2), signal(2), sigpending(2), sigprocmask(2), sigqueue(2), sigsuspend(2), wait(2), killpg(3), raise(3), siginterrupt(3), sigsetops(3), sigvec(3), core(5), signal(7)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre