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

关于waitpid这个话的理解

    来源: 互联网  发布时间:2017-04-22

    本文导语:  看网上的这段话: “WNOHANG选择项通知内核在没有已终止进程项时不要阻塞” 这个话怎么理解阿 ? 我认为原作者是错误的,因为waitpid(-1, &stat, WNOHANG)在等到第一个子进程退出时候就返回了。 所以还是会有四个僵...

看网上的这段话:

“WNOHANG选择项通知内核在没有已终止进程项时不要阻塞” 这个话怎么理解阿 ?

我认为原作者是错误的,因为waitpid(-1, &stat, WNOHANG)在等到第一个子进程退出时候就返回了。
所以还是会有四个僵尸进程。



|
因为非实时信号不排队,极有可能本次信号处理函数回调时已经有5个SIGCHLD到来过了,那么你必须用非阻塞waitpid循环直到waitpid返回0或者-1&&errno==ECHILD,那么你就可以退出信号处理函数了,之所以敢退出,是因为信号处理函数一旦进入就会屏蔽掉信号,所以不会造成任何时间窗口会丢失信号。

|
waitpid 带 WNOHANG 参数 返回0,说明当前没有子进程结束
返回-1&&errno==ECHILD 说明当前进程没有子进程或者子进程都结束了

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 初学者提问waitpid怎么个意思,在线等,马上结贴
  • waitpid 中 的最后一个参数使用 WNOHANG时的意义
  • waitpid之类有没有非阻塞模式的?
  • wait waitpid 区别
  • 请教waitpid函数的问题!
  • waitpid的返回值的一些问题
  • 请教关于fork以及waitpid的问题
  • wait() waitpid() 函数
  • 进程waitpid options参数的疑惑
  • 子进程wait/waitpid//子进程不结束,父进程会等待子进程吗?
  • 关于waitpid函数的一个问题
  • 为什么linux下进程结束后,需要使用wait或者waitpid释放资源?
  • 有谁来解释下waitpid函数中 pid的值为-1和0的区别
  • 一个老调重弹的问题:while循环中wait为什么不能代替waitpid
  • 小白请教关于Listen、accept、信号处理函数、waitpid的几个问题
  • 小弟在学习LINUX程序设计时遇到有关wait和waitpid的问题,请各位达人帮忙,不胜感激。


  • 站内导航:


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

    ©2012-2021,