您的位置:首页 > 运维架构 > Linux

Linux进程 捕获信号

2011-07-05 20:37 531 查看
1 当信号发出后,可以使用signal()方法捕获信号

2.

表头文件 #include<signal.h>

功 能: 设置某一信号的对应动作

函数原型 :void (*signal(int signum,void(* handler)(int)))(int);

  或者:typedef void(*sig_t) ( int );   sig_t signal(int signum,sig_t handler);

第一个参数signum指明了所要处理的信号类型,它可以取除了SIGKILL和SIGSTOP外的任何一种信号

第二个参数handler描述了与信号关联的动作,它可以取以下三种值:

一个返回值为正数的函数地址

SIGIGN 这个符号表示忽略该信号,执行了相应的signal()调用后,进程会忽略类型为sig的信号

SIGDFL 这个符号表示恢复系统对信号的默认处理

3

#include<stdio.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<stdlib.h>
#include<signal.h>

void msg();

int main()
{
signal(SIGALRM,msg);
alarm(5);
pause();
}

void msg()
{
printf("Get alarm signal!\n");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息