信号之函数sigaction、sigsetjmp、siglongjmp、sigsuspend以及abort |
您所在的位置:网站首页 › sigsetjmp函数 › 信号之函数sigaction、sigsetjmp、siglongjmp、sigsuspend以及abort |
本文来自个人博客:https://dunkwan.cn 文章目录 函数`sigaction`函数`sigsetjmp`和`siglongjmp`函数`sigsuspend`函数`abort` 函数sigactionsigaction函数的功能是检查或修改(或检查并修改)与指定信号向关联的处理动作。此函数取代了UNIX早期版本使用的signal函数。 #include int sigaction(int signo, const struct sigaction *restrict act, struct sigaction *restrict oact); 返回值:若成功,返回0;若出错,返回-1。参数signo是要检测或修改其具体动作的信号编号。若act指针非空,则要修改其动作。如果oact指针非空,则系统经由oact指针返回该信号的上一个动作。 此函数中的sigaction结构如下: struct sigaction{ void (*sa_handler)(int); /* addr of signal handler */ /* or SIG_IGN, or SIG_DFL */ sigset_t sa_mask; /* additional signals to block */ int sa_flags; /* signal options */ /* alternate handler */ void (*sa_sigaction)(int, siginfo_t *, void *); };以下是用sigaction函数实现signal。 #include "../../include/apue.h" /* Reliable version of signal(), using POSIX sigaction(). */ Sigfunc * signal(int signo, Sigfunc *func) { struct sigaction act, oact; act.sa_handler = func; sigemptyset(&act.sa_mask); act.sa_flags = 0; if(signo == SIGALRM){ #ifdef SA_INTERRUPT act.sa_flags |= SA_INTERRUPT; #endif }else{ act.sa_flags |= SA_RESTART; } if(sigaction(signo, &act, &oact) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |