signal库函数
sighandler_t signal(int signum, sighandler_t handler);
参数handler表示信号的处理方式,有三种情况:
1、SIG_IGN:忽略参数signum所指的信号
2、一次自定义的处理信号的函数,信号的编号为这个自定义函数的参数。
3、SIG_DFL:恢复参数signum所指信号的处理方法为默认值
信号中断
#include<signal.h>
int sigemptyset(sigset_t *set); //清空信号集
int sigfillset(sigset_t *set); //把所有信号加入信号集
int sigaddset(sigset_t *set,int signum); //把一个信号加入信号集合
int sigdelset(sigset_t *set,int signum); //从信号集里删除一个信号
int sigismember(const sigset_t *set,int signum); //查看信号是否在信号集里
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);
};
#include <signal.h>
int sigaction(int signum, //信号编号
const struct sigaction *act, //sigaction结构体
struct sigaction *oldact //
);