码迷,mamicode.com
首页 > 其他好文 > 详细

改进的捕获信号机制

时间:2015-05-12 09:13:30      阅读:78      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!