首页 > 其他 > 详细

改进的捕获信号机制

时间:2015-05-12 09:12:41      阅读:175      评论:0      收藏:0      [点我收藏+]
sigaction函数的功能是检查或修改与指定信号相关联的处理动作,该函数取代了signal函数。

#include <signal.h>

int sigaction(int signo, const struct sigaction *act, struct sigaction *oact);

成功返回0,失败返回-1。
 
参数signo是要检测或者修改其具体动作的信号编号(或同时执行这两种操作)。
如果act指针非空,则要修改其动作。
如果oact指针非空,则系统由oact指针返回该信号的上一个动作。

 struct sigaction {

  void (*sa_handler)(int);

  void (*sa_sigaction)(int, siginfo_t *, void *);

  sigset_t sa_mask;

  int sa_flags;

  void (*sa_restorer)(void);

}

 

sigaction函数例子
void catch_Signal(int Sign)
{
    switch (Sign)
    {
    case SIGINT:
        printf("SIGINT Signal\n");
        exit(0);
    }
}
int signal1(int signo, void (*func)(int))
{
    struct sigaction act, oact;
    act.sa_handler = func;
    sigemptyset(&act.sa_mask);
    act.sa_flags = 0;
    return sigaction(signo, &act, &oact);
}
int main(int arg, char *args[])
{
    signal1(SIGINT, catch_Signal);
    pause();
    return 0;
}

改进的捕获信号机制

原文:http://www.cnblogs.com/shichuan/p/4496340.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!