UNIXT_信号的忽略和捕捉.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UNIXT_信号的忽略和捕捉

计算机系上机实践报告 课程名称:Unix操作系统 年级:2008级 上机实践成绩: 指导教师: 姓名: 上机实践名称:信号的忽略和捕捉 学号: 上机实践日期:2011-4-28 上机实践编号:5 组号: 上机实践时间:14:00--15:40 一、目的 1.理解信号的忽略 2.理解信号的捕捉 二、内容与设计思想 1信号被忽略 单独运行xyz时,使用kill -15命令可杀死该进程 由abc进程来启动的xyz进程就不能用kill -15命令杀死。 注意:在第二种运行方式中,XYZ程序存放的位置与PATH环境变量值的关系。 搞清signal(SIGTERM, SIG_IGN)与kill -15的关系 /* File name : abc.c */ #include sys/signal.hmain() { signal(SIGTERM, SIG_IGN); if (fork()) { for(;;) sleep(100); } else execlp(”xyz”, ”xyz”, 0); } /* File name : xyz.c */ main() { int i = 0; for (;;) { printf(”%d\n”, i++); sleep(1); } } 2 信号的捕捉 信号被捕捉并由一个用户函数来处理 信号到达时,这个函数将被调用来处理那个信号 #include sys/signal.h sig_handle(int sig) { printf(”HELLO! Signal %d catched.\n”,sig); } main() { signal(SIGINT, sig_handle); signal(SIGQUIT, sig_handle); for(;;) sleep(500); } 三、使用环境 硬件环境 微型计算机一台(intel? core CPU)(内存2G) 软件环境 Widows xp环境下安装的As4虚拟机。 四、核心代码及调试过程 1.编写程序abc.c 编写成序xyz.c 首先运行xyz.c程序,如下图: 用kill -15杀死进程,如下图: 运行abc.c启动xyz进程,如下图: 用kill -15 不能杀死该xyz进程,如下图: 程序依然在运行 2.编写handsig,c程序: 运行程序 五、总结 通过这次的实验对信号这一概念有了形象的认识,对信号和进程的一些基本操作也有了进一步的了解,了解到可以通过信号量实现进程间通信。同时也掌握了有关进程的一些命令如查看进程状态,杀死进程,同时感谢李老师的热心指导。

文档评论(0)

sh4125733 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档