CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

关于进程的问题。

楼主leeight(睡醒了!)2006-07-01 14:48:57 在 C/C++ / C语言 提问

下面的代码在按下Ctrl+C之后,为什么只有一个结果输出呢,   就是Parent那个。  
  #include   <sys/types.h>  
  #include   <sys/wait.h>  
  #include   <stdio.h>  
  #include   <signal.h>  
  #include   <unistd.h>  
   
  int   flag;  
   
  void   intrrupt(){  
          flag   =   0;  
  }  
   
  void   w(){  
          while(flag   !=   0);  
  }  
   
  int   main(){  
          int   pid1,   pid2;  
   
          pid1   =   fork();  
   
          if(pid1   >   0){ /*   Parent   Process   */  
  pid2   =   fork();  
  if(pid2   >   0){ /*   Parent   Process   */  
          flag   =   1;  
          signal(SIGINT,   intrrupt);  
          w();    
          kill(pid1,   16);  
          kill(pid2,   17);  
          wait(0);  
          wait(0);  
          printf("\nParent   Process   Is   Killed!\n");  
          exit(0);  
  }else{ /*   Child   Process   */  
          flag   =   1;  
          signal(17,   intrrupt);  
          w();    
          printf("\nChild   Process   2   Is   Killed   By   Parent!\n");  
          exit(0);  
  }  
          }else{ /*   Child   Process   */  
  flag   =   1;  
  signal(16,   intrrupt);  
  w();  
  printf("\nChild   Process   1   Is   Killed   By   Parent!\n");  
  exit(0);  
          }  
   
        return   1;  
  }  
   
  应该是在两个子进程结束之后,也就是输出Child之后,才会有父进程的结束啊。 问题点数:20、回复次数:2Top

1 楼zez(思恩 闭关练功ing...)回复于 2006-07-01 15:31:33 得分 0

没仔细看你的程序.  
  只是提示一下..  
   
  子进程是单独的进程,其和主进程并行运行..  
   
  哪个先执行完   是未知的!!!Top

2 楼leeight(睡醒了!)回复于 2006-07-01 16:17:54 得分 0

但是将这两句  
  “signal(SIGINT,   intrrupt);w();   ”  
  换成sleep(5),   就和预期的符合了,为什么呢》Top

相关问题

关键词

得分解答快速导航

  • 帖主:leeight

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo