用sigaction实现signal

原创 2012年03月25日 14:16:17
#include <errno.h>
#include <stdio.h>
#include <signal.h>
#include <unistd.h>

typedef void (*sig_handler_t)(int);

void sig_int(int signo);

sig_handler_t signal(int signo, sig_handler_t func);

void sig_int(int signo)
{
    printf("caught signal INTERRUPT!\n");
}

sig_handler_t signal(int signo, sig_handler_t func)
{
    struct sigaction act, oact;
    
    sigemptyset(&act.sa_mask);
    act.sa_handler = func;
    
    if(sigaction(signo, &act, &oact) < 0)
    {   
        perror("sigaction");
        return 0;
    }   
    return oact.sa_handler;
}

int main(int argc, char **agrv)
{
    signal(SIGINT, sig_int);
    while(1)
    {   
        pause();
    }   
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

sigaction 和 signal 函数

1.sigaction 函数 NAME        sigaction - examine and change a signal action SYNOPSIS      &...

linux信号机制之sigaction结构体浅析,signal 函数,信号捕捉(转)

linux信号机制之sigaction结构体浅析,signal 函数,信号捕捉

signal函数、sigaction函数及信号集操作函数

信号是与一定的进程相联系的。也就是说,一个进程可以决定在进程中对哪些信号进行什么样的处理。例如,一个进程可以忽略某些信号而只处理其他一些信号;另外,一个进程还可以选择如何处理信号。总之,这些总与特定的...

signal系列之sigaction函数

使用简单的 demo 看下 sigaction 函数的效果

工作中遇到的-signal与sigaction的分析

signal函数每次设置具体的信号处理函数(非SIG_IGN)只能生效一次,每次在进程响应处理信号时,随即将信号处理函数恢复为默认处理方式.所以如果想多次相同方式处理某个信号,通常的做法是,在响应函数...

signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数

转载自:http://blog.chinaunix.net/uid-28458801-id-5032557.html 信号是与一定的进程相联系的。也就是说,一个进程可以决定在进程中对哪些信号进行...

signal函数、sigaction函数及信号集操作函数

信号安装函数sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)的第二个参数是一个指向sigaction...

网络编程(13)—— 利用信号处理函数signal和sigaction销毁僵尸进程

linux中的信号处理类似于windows中的消息处理,原理是利用回调函数进行信号处理器和信号的关联。 一、signal函数 signal函数的原型如下: #include typedef vo...

sigaction函数和signal函数

signal和sigaction的区别: signal都是指以前的older signal函数,现在大多系统都用sigaction重新实现了signal函数。 1.      signal在调用h...

signal和sigaction的分析比较

原文:http://blog.chinaunix.net/uid-9354-id-2425031.html signal函数每次设置具体的信号处理函数(非SIG_IGN)只能生效一次,每次在进...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)