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

◎为何出现僵尸进程◎请教

    来源: 互联网  发布时间:2015-04-30

    本文导语:  如下代码 #indlue .... #define.... int main(int argc, char * argv[]) {   int sockfd, new_fd;   pid_t pid;  // pid   int len;   char msg[BUFSIZE] = {0};   struct sockaddr_in my_addr;   struct sockaddr_in their_addr;   int sin_size;      soc...

如下代码

#indlue ....

#define....

int main(int argc, char * argv[])
{
  int sockfd, new_fd;
  pid_t pid;  // pid
  int len;
  char msg[BUFSIZE] = {0};

  struct sockaddr_in my_addr;
  struct sockaddr_in their_addr;
  int sin_size;
  
  sockfd = socket(AF_INET, SOCK_STREAM, 0);

  my_addr.sin_port = htons(MYPORT);
  my_addr.sin_family = AF_INET;
  my_addr.sin_addr.s_addr = htonl(INADDR_ANY);

  bzero(&(my_addr.sin_zero),8);

  bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr));

  listen(sockfd, BACKLOG);

  while(1)
  {
    sin_size = sizeof(struct sockaddr_in);

    new_fd = accept(sockfd,(struct sockaddr *)&their_addr, &sin_size);
    if((pid=fork()) == 0)
    {
     close(sockfd);
       recv(new_fd, msg, BUFSIZE, 0);
       printf("STRINGS: %sn", msg);
      
       close(new_fd);
       exit(0);
    }
    else
       close(new_fd);
  }

  close(sockfd);
  exit(0);
}

执行完 开始接受后
接收到一条
系统出现一个
[ThreadListen ]
怎么办 啊

|
父进程要给子进程收尸的,
使用waitpid.

signal( SIGCHLD, sig_chld );
....

static void sig_chld(int signo)
{
 pid_t pid;
 int stat;
 while( (pid=waitpid(-1, &stat, WNOHANG)) > 0 );

 return;
}

    
 
 

您可能感兴趣的文章:

  • linux下如何防止僵尸进程的出现??
  • 为什么会出现僵尸进程?一个最简单的进程控制例子
  • 写一个后台运行程序,出现僵尸进程
  • 从定时从A程序调用B程序(B程序运行一下就退出)多次后,出现僵尸进程?如何解决?
  • 请教各位高人,我的一个JAVA小程序中为何会出现Class GirdLayout not found.
  • linux 高分请教安装后出现的问题
  • 请教在cygwin下使用make命令出现的一个问题?
  • 请教高手----grub下出现unrecognized command
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • g++ 编译出现:undefined reference to 'main'错误,请教如何解决?
  • 请教:jdbNavList如何才能出现滚动条?(在线等待)
  • 请教:linux上出现的9098监听端口怎么回事?
  • 关于嵌入移植出现的问题,请教!!
  • 请教高手 linux安装时候出现的问题:
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • 在线请教:linux下用MySQL C API 连接MySQL 4.1.12出现的连接问题,提示升级客户端!!!!!!
  • 使用tomcat出现的问题(socket write error),请教大家
  • 请教 运行spcaview 出现ERROR setting channel and norme 是什么原因?
  • 安装redhat9的时候出现如下错误,请教!
  • 请教正则问题:句子里含有句点 . 当我用((w*s*.*)*)提取句子时出现StackOverflowError
  • 请教大家一个最简单关于shell脚本的所出现美元符号问题
  • 我是linux初学者,我修改了/ect/fstab,结果出现登陆报错,请教大家如何修改
  • [请教] KDE 安装过程中非正常退出后,再次进入出现的问题。高分。
  • 我在fedora下安装mysql出现了个问题,请教,马上结账
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 有n个进程的系统出现死锁,死锁进程个数k应该满足什么条件?
  • 进程自己断开出现failed 15,什么原因
  • 终止pid=1的init进程会出现什么现象?
  • 进程复制数据到系统的内核地址出错,这时会出现什么问题?
  • 出现了僵死进程,求解、。
  • 系统中出现了几个奇怪的进程。
  • 在线等。。。使用压力测试工具进行测试有时出现httpd子进程CPU占用率100%,且压力撤除后无法恢复
  • 系统中突然出现大量进程,是怎么回事?
  • 大神急救!!!!输入进程号pid,输出进程名pname。运行出现段错误,调试了很久,只想说这是有史以来遇到的最纠结的段错误,莫名其妙!
  • SQLserver2000 企业版 出现"进程51发生了严重的异常"错误的处理方法
  • 我的电脑在进程中经常出现一个 .exe 这个东东它好像是个病毒,如何清它(杀毒无用
  • 为什么出现很多一样的进程
  • debian下,用jsvc设置tomcat自动启动,导致出现两个tomcat进程
  • 一个最简单的进程调用学习出现的问题
  • fork、execl创建多进程,出现一个僵死进程
  • UNIX 新手一问 关于fork 和 2进程同时写一文件出现的问题
  • linux下tomcat启动后出现多个java进程
  • C++ MultiMaps 成员 count():返回一个元素出现的次数
  • 是否有人知道linux启动时最先出现的小企鹅图标在那儿出现的?
  • C++ I/O 成员 bad():如果出现错误则返回true
  • java.net.URLConnection中getOutputStream()方法出现协议不支持输出流的错误,请问为何会出现此错误?
  • C++ I/O 成员 fail():如果出现错误则返回true
  • 如果出现某种错误或异常,就在网页里出现相关信息,比如连接超时,就显示系统正忙,该怎么做呀?
  • C++ Maps 成员 count():返回指定元素出现的次数
  • 我是root用户,却在桌面上出现加锁的文件。还有总是出现“???”的文件夹?怎么回事啊?
  • C++ I/O 成员 good():如果没有出现过错误则返回true
  • 用jdk的appletviewer xxx.html时会出现两个窗口,能否让它只出现一个窗口.
  • 为什么会出现这样的问题?出现了怎么解决?
  • 我用7.2进行服务器模式安装,随后对XWINDOW进行配置,重启之后虽然出现登陆图形界面,但进去之后,桌面上只出现一个X形鼠标,其他均无任何图标
  • 在JBuilder中,为什么编写的代码中,当代码出现关键字时,后面的部分代码就移位了,当在有关键字的那些代码行进行选择时,也会出现鼠标位
  • 新用linux的GDB, 版本是出现6.3.3.0,出现奇怪问题, 可能是环境设置的问题, 大人帮忙


  • 站内导航:


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

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

    浙ICP备11055608号-3