1.信号处理函数
相关函数原型如下:
#include
sighandler_t signal(int signum, sighandler_t handler);
第一参数是信号
第二个参数是信号处理器:
1.可以是SIG_DFL,信号的默认动作
2. 可以是SIG_IGN,忽略该信号
3. 一个带有一个整型参数的处理函数。
#include
int sigaction(int signum, const struct sigaction *act,
struct sigaction *oldact);
signum 要处理的信号
act 指针,指向描述操作的结构 如何响应信号的结构体
oldact 指针,指向描述被替换操作的结构 被替换的处理设置的结构体
struct sigaction {
void (*sa_handler)(int);
void (*sa_sigaction)(int, siginfo_t *, void *);
sigset_t sa_mask;
int sa_flags;
void (*sa_restorer)(void);
};
进程该如何处理信号(早期的信号处理机制):
进程可以通过signal系统调用来告诉内核该怎么去处理信号
1.接受默认处理
按照信号本来的意图区处理 signal(SIGINT,SIG_DFL)
2.忽略信号
signal(SIGINT,SIG_IGN) 忽略SIGINT信号
3.调用一个函数
signal(SI