当前位置: 技术问答>linux和unix
关于waitpid这个话的理解
来源: 互联网 发布时间:2017-04-22
本文导语: 看网上的这段话: “WNOHANG选择项通知内核在没有已终止进程项时不要阻塞” 这个话怎么理解阿 ? 我认为原作者是错误的,因为waitpid(-1, &stat, WNOHANG)在等到第一个子进程退出时候就返回了。 所以还是会有四个僵...
看网上的这段话:
“WNOHANG选择项通知内核在没有已终止进程项时不要阻塞” 这个话怎么理解阿 ?
我认为原作者是错误的,因为waitpid(-1, &stat, WNOHANG)在等到第一个子进程退出时候就返回了。
所以还是会有四个僵尸进程。
“WNOHANG选择项通知内核在没有已终止进程项时不要阻塞” 这个话怎么理解阿 ?
我认为原作者是错误的,因为waitpid(-1, &stat, WNOHANG)在等到第一个子进程退出时候就返回了。
所以还是会有四个僵尸进程。
|
因为非实时信号不排队,极有可能本次信号处理函数回调时已经有5个SIGCHLD到来过了,那么你必须用非阻塞waitpid循环直到waitpid返回0或者-1&&errno==ECHILD,那么你就可以退出信号处理函数了,之所以敢退出,是因为信号处理函数一旦进入就会屏蔽掉信号,所以不会造成任何时间窗口会丢失信号。
|
waitpid 带 WNOHANG 参数 返回0,说明当前没有子进程结束
返回-1&&errno==ECHILD 说明当前进程没有子进程或者子进程都结束了
返回-1&&errno==ECHILD 说明当前进程没有子进程或者子进程都结束了
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。