Chinaunix首页 | 论坛 | 博客
  • 博客访问: 709581
  • 博文数量: 240
  • 博客积分: 3616
  • 博客等级: 大校
  • 技术积分: 2663
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-21 23:59
文章分类

全部博文(240)

文章存档

2013年(6)

2012年(80)

2011年(119)

2010年(35)

分类: LINUX

2010-11-03 17:58:24

下面来分析一下kill.c代码:
#include
#include
#include
void my_func(int sign_no)//自定义信号处理函数
{
 if(sign_no==SIGINT)
 {
  printf("I have get SIGINT\n"); 
 } 
 else if(sign_no==SIGQUIT)
 {
  printf("I have get SIGQUIT\n"); 
 }
 
}

int main()
{
 printf("waiting for signal SIGINT or SIGQUIT \n");
 signal(SIGINT,my_func);//发出相应的信号,并跳转到信号处理函数处
 signal(SIGQUIT,my_func);
 pause();
 exit(0); 
 
}
/*----------------------------------------
notes:
1.特定的信号与一定的进程相联系,也就是说,一个进程可以决定在该进程中需要
对哪些信号进行什么样的处理.
2.信号处理的主要方法有两种,一种是使用简单的signal函数,另一种是使用信号
集函数组.
3.signal()
1)函数说明
使用signal函数处理时,只需要把处理的信号和处理函数列出即可.它主要是用于前
32种非实时信号的处理.
2)函数格式
1]所需要的头文件:#include
2]函数原型 void (*signal(int signum,void (*handler)(int)))(int)
3]函数输入参数
signum:指定信号
handler:
SIG_IGN:忽略该信号'
SIG_DFL:采用系统默认方式处理信号
自定义的信号处理函数指针
4]函数返回值
成功:以前的信号处理配置
出错:-1.
3.实验:
[root@localhost the_eight_step]# gcc mysignal.c -o mysignal
[root@localhost the_eight_step]# ./mysignal
waiting for signal SIGINT or SIGQUIT
按ctrl+c显示
I have get SIGINT
-------------------------------------------*/
阅读(698) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2010-11-05 08:33:42

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com