用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;
}

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

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

Linux信号(signal、sigaction) 机制分析

【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执...

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

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

signal系列之sigaction函数

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

sigaction 和 signal 函数

1.sigaction 函数 NAME        sigaction - examine and change a signal action SYNOPSIS        #inc...
  • elbort
  • elbort
  • 2012年05月24日 15:40
  • 620

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

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

signal、sigaction,信号集操作函数

原文地址:http://blog.csdn.net/guoping16/article/details/6583957 信号是与一定的进程相联系的。也就是说,一个进程可以决定在进程中对哪些信号进...

linux信号处理之signal、sigaction、alarm、pause函数

信号相关的东西都在  /usr/include/singnal.h里 各种信号的定义的都在 /usr/include/i386-linux-gnu/bits/signum.h         3....

记signal和sigaction的一个区别

记signal和sigaction的一个区别 如果需要用相同的方式处理信号多次出现,且信号容易多次出现,则建议使用sigaction函数;若可以保证信号长时间内只出现并只需要处理一次,则可以使用s...

sigaction函数和signal函数

signal和sigaction的区别: signal都是指以前的older signal函数,现在大多系统都用sigaction重新实现了signal函数。 1.      signal在调用h...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用sigaction实现signal
举报原因:
原因补充:

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