下面的源码中搬掉僵尸

2016-02-19 18:08 4 1 收藏

下面请跟着图老师小编一起来了解下下面的源码中搬掉僵尸,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】


  #include stdio.h
  #include sys/types.h
  #include unistd.h
  #include string.h
  extern int errno;
  
  main()
  {
  char c, string[100];
  FILE * fp;
  int k, s, childpid;
  printf("test in beginning!
  ");
  
  while((c = getchar()) == ' ');
  
  for(;;)
  {
  if((childpid = vfork()) 0)
  perror("childpid");
  else if(childpid ==0 )
  {
  childpid=getpid();
  
  printf("child %d in active!
  ", childpid);
  while((c = getchar()) != '
  ')
  putchar(c);
  
  printf("
  the child %d must quit!
  
  ", childpid);
  _exit(0);
  }
  }
  }
  
  增加
  else if (childpid 0)
  {
  sigignore (SIGCHLD);
  }
  
  僵尸出现的原因是子进程默认将资源归还给副进程,但是你的父进程先子进程而亡,造成子进程变成"孤儿",结束后变成"僵尸"
  忽略SIG CHILD信号是将子进程的控制权交给自己的父进程(一般就是你的login shell)这样就不会出现僵尸了
  
  
  
  
  我不知道楼上的用法,但是我估计会有问题,我认为正确的处理方法是在vfork之前加上信号处理机制,如:signal(SIG_CHLD, SIG_IGN);这条语句的意思是,忽略子进程退出而产生的SIG_CHLD信号,交给超级服务器去处理!
  
  
  
  zhongjl:
  在vfork前加上信号处理函数:
  signal(SIG_CHLD, Proc_CHLD);
  
  void Proc_CHLD(int SIGNO)
  {
   int pid = -1;
   int stat;
   while(pid=waitpid(0, &stat, WHNONG);
  }
  
  
  
  我同意zhongjl 使用的程序,因为我的程序以前也是有很多死进程,后来使用上面的代码后,就没了

来源:http://www.tulaoshi.com/n/20160219/1616894.html

延伸阅读
标签: Web开发
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
标签: 电脑 电脑入门
正常状态 正常情况,任务栏是正常显示的。如图所示,下面可以看到任务栏。 任务栏不显示 有时最下面的任务栏会莫名其妙的消失了,打开软件还要用alt+tab切换,非常不方便。 调出任务管理器 按ctrl+alt+del,调出任务管理器,点击“文件”,然后选择“新建任务(运行)” 运行命令 在弹出的窗口中输入“explorer....
标签: PhotoShop PS PS教程
Photoshop给高架桥下面的美女加上暖色晨曦 素材图片天空部分比较杂乱,可直接把天空部分换上霞光素材;然后在合适的位置渲染一些橙黄色阳光;再把图片稍微压暗,并加强好人物的光影即可。 原图 最终效果 1、打开原图素材大图,新建一个图层,用透明度为:10%的柔边黑色画笔把下图红圈部分稍微涂暗一点。 ...
    这里介绍如何用程序的方法获得WebBrowser控件中的HTML的源代码,并可以通过修改源代码内容来修改页面内容(注意:不是显示一个新的页面)。       首先要加入WebBrowser控件,加入控件的方面我就不说了。获得源代码方法有两种:   一、方法1(严格说,这个方法只不过是调用WebBrow...
如果你已经有一个运行于此平台的App,你可能打算为新iOS而设计,或者在旧版上做一些必要调整,不论哪种,你都希望为新界面而设计,确保你的App与用户在苹果设备上的体验相吻合。 那么如何做到这点?扁平,更加扁平 苹果的iOS7秉承着扁平的设计理念,尽管它不是完全的扁平化,那么就秉着较扁平来规划设计你APP或移动站点。 所有的那些曾经...

经验教程

387

收藏

14
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部