当前位置:  技术问答>linux和unix

Linux信号机制有关问题

    来源: 互联网  发布时间:2016-03-12

    本文导语:  代码如下: #include  #include  #include  void waiting(),stop(); int wait_mark; main() {    int p1,p2,stdout;    while((p1=fork())==-1);       /*创建子进程p1*/    if (p1>0){          wait_mark=1;          signal(SIGINT,stop);   /*接...

代码如下:
#include 
#include 
#include 

void waiting(),stop();
int wait_mark;
main()
{
   int p1,p2,stdout;
   while((p1=fork())==-1);       /*创建子进程p1*/
   if (p1>0){
         wait_mark=1;
         signal(SIGINT,stop);   /*接收到^c信号,转stop*/
         waiting();
         kill(p1,16);        /*向p1发软中断信号16*/
         wait(0);          /*同步*/
         printf("Parent process is killed!n");
         exit(0);
      }
      else
      {
      wait_mark=1;
      signal(16,stop);        /*接收到软中断信号16,转stop*/
      waiting();
      lockf(stdout,1,0);
      printf("Child process 1 is killed by parent!n");
      lockf(stdout,0,0);
      exit(0);
      }
}

void waiting()
{
 while(wait_mark!=0);
}

void stop()
{
wait_mark=0;
}

预期结果为:系统调用signal( )让父进程捕捉键盘上来的中断信号(即按^c键);捕捉到中断信号后,父进程用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:
Child process1 is killed by parent!
父进程等待两个子进程终止后,输出如下的信息后终止:
Parent process is killed!

但执行结果为:按^c键后,只输出了Parent process is killed!而没有子进程那句...请问是为什么呢? 

|
你在子进程中加上signal(SIGINT, SIG_IGN);就可以了。
当你按Ctrl+C时子进程也收到了^C信号,子进程按照默认处理退出,收不到16信号了。所以也就打印不出来

|
顶下1楼的

    
 
 

您可能感兴趣的文章:

  • 学习linux的新手问:linux进程信号掩码以及信号阻塞与信号未决怎么理解?
  • linux 中信号量的使用 当信号初始化的时候设置的值大于1将是如何?
  • 【求助】linux/Unix下创建子进程,向父进程发送信号,子进程也能收到改信号,此时如何让子进程不收到信号
  • Linux下的信号忽略和信号阻塞是什么意思
  • 请高手指教 linux 信号处理问题
  • linux 信号中断
  • linux 信号 按什么键能发SIGCONT 信号??
  • linux的信号处理函数中如何访问共享资源
  • linux中 关于 进程和信号的问题
  • 如何使用命令行删除Linux下的POSIX有名信号灯
  • linux 下多线程 每个线程能否使用alarm来处理,信号是否会乱呢?
  • 关于linux内核中信号处理的问题?(信号处理的时间)
  • linux多线程信号问题
  • linux下面的信号都已经是"可靠信号"了吗,已经没有了不可靠信号?
  • linux 只有SIGUSR1和SIGUSR2,如果有多个应用程序需要信号,怎么办?
  • 在linux下怎么使用信号量?
  • 关于Linux下的信号量
  • Linux,aix,windows下可以查询非本进程的信号处理函数吗?
  • linux 下信号机制问题
  • 请问那些linux信号是不能捕捉的?
  • Linux如何利用了段机制又巧妙地绕过了段机制?
  • linux的驱动机制是什么
  • 现有linux内核中共享内存机制如何移植到linux0.11内核中
  • inotify机制是Linux专有的吗,还是Posix系统上全都有的实现?
  • 请教:LINUX用不用循环机制?与WINDOWS有什么本质区别?
  • .net/c#/asp.net iis7站长之家
  • linux操作系统的保护模式和分页机制,高手请进。
  • 谁能介绍下linux的窗口管理机制,谢谢!
  • 哪位高手可以解释下Linux的消息机制吗?谢谢
  • linux下的时间机制
  • 请问linux大家都是用哪些切换机制!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 大家推荐一下有关LINUX7有关的网络编程的书。最好是比较全面的!比较经典的。
  • 我想看看有关Linux和Unix的源码,有什么好的建议
  • 有关linux的问题
  • linux的有关问题!
  • 有关LINUX编程的书籍
  • 有关Redhat Linux的版本问题
  • 有关配置红旗LINUX网络的问题,
  • 有关linux的lilo的问题
  • 有关linux7.3的启动
  • 有关linux下编成问题
  • 请问ftp上传大小写突然改变跟linux有关吗?
  • 新手有关linux的问题!
  • 有关linux平台的嵌入式开发工具
  • 有关Linux和Unix下命令安装位置
  • 有关关闭机器的问题LINUX
  • 有关Linux8.0一个小问题!
  • 有关win2000和redhat8.0 linux的时间问题
  • 有关linux的安装问题
  • 有关linux下MySql的安装和使用
  • 请问哪有有关linux/unix操作手册sch的文档下载吗?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3