linux-sigaction 捕捉setitimer产生信号

1、

#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <sys/time.h>

void catch_sig(int num)
{
	printf("catch %d sig\n",num);
}
int main()
{
struct sigaction act;
act.sa_flags=0;
act.sa_handler  = catch_sig;
sigemptyset(&act.sa_mask);
sigaction(SIGALRM,&act,NULL);


struct itimerval myit = {{3,0},{5,0}};//第一次5s 后面3s循环一次
setitimer(ITIMER_REAL,&myit,NULL);
while(1)
{
	printf("who can kill me!\n");
	sleep(1);
}
return 0;
}

2、sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)

SYNOPSIS
       #include <signal.h>

       int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);//注册捕捉函数

signum 捕捉信号

act 传入动作

3、

structure is defined as something like:

           struct sigaction {
               void     (*sa_handler)(int);//默认信号处理函数,函数指针,捕捉函数要执行的(sa_flags=0)
               void     (*sa_sigaction)(int, siginfo_t *, void *); //可以发送附加信息的信号处理函数,sa_flag设置了SA_SIGINFO使用其处理
               sigset_t   sa_mask;//在此信号集中的信号在信号处理函数运行中会被屏蔽,函数处理完后才处理该信号

                                      //执行捕捉函数期间临时屏蔽的信号集
               int        sa_flags;//可设参数很多,一般填0
               void     (*sa_restorer)(void);
           };

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值