Chinaunix首页 | 论坛 | 博客
  • 博客访问: 157507
  • 博文数量: 76
  • 博客积分: 1513
  • 博客等级: 上尉
  • 技术积分: 755
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-25 15:15
文章分类

全部博文(76)

文章存档

2012年(2)

2011年(74)

我的朋友

分类: LINUX

2011-11-25 20:55:25

  1. #include<signal.h>

  2. #include<iostream>

  3. using namespace std;

  4.  

  5. int alarm_fired;

  6.  

  7. void ding(int sig)

  8. {

  9. alarm_fired=1;

  10. }

  11.  

  12. int main()

  13. {

  14. pid_t pid;

  15. cout<<"alarm application start"<<endl;

  16. pid=fork();

  17. if(pid==-1)

  18. {

  19. cout<<"error"<<endl;

  20. exit(1);

  21. }

  22. else if(pid==0)

  23. {

  24. sleep(5);

  25. kill(getppid(),SIGALRM);

  26. exit(0);

  27. }

  28. cout<<"wait for alarm to go off"<<endl;

  29. (void) signal(SIGALRM,ding);

  30. pause();

  31. if(alarm_fired)

  32. cout<<"ding"<<endl;

  33. cout<<"done"<<endl;

  34. exit(0);

  35. }

output:

[xq@m1 ~]$ g++ -o signa_kill signa_kill.cpp

[xq@m1 ~]$ ./signa_kill

alarm application start

wait for alarm to go off

ding

done

[xq@m1 ~]$ 


阅读(604) | 评论(0) | 转发(0) |
0

上一篇:Linux多线程之信号1

下一篇:进程示例

给主人留下些什么吧!~~