标签:
捕抓信号
如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,称为捕抓信号。
sighandler和main函数使用不同的堆栈空间,sighandler函数返回后自动执行特殊的系统调用sigreturn再次进入内核态。内核态切换到用户态执行main函数前要先扫描信号,处理信号后再执行main函数部分。
#include <signal.h>
int kill(pid_t pid, int signo);
#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
int sigaction(int signo, const struct sigaction *act, struct sigaction *lact);
成功0, 失败-1.
struct sigaction {
void (*sa_handler)(int); /* or SIG_IGN, SIG_DFL */
sigset_t sa_mask; /*addition signals to block*/
int sa_flags; /*0则信号处理函数为sa_handler();SA_SIGINFO,信号处理函数为sa_sigaction*/
void (*sa_sigaction)(int, siginfo_t *, void *);
};
标签:
原文地址:http://www.cnblogs.com/embedded-linux/p/5017892.html