当前位置: 技术问答>linux和unix
waitpid 中 的最后一个参数使用 WNOHANG时的意义
来源: 互联网 发布时间:2015-11-24
本文导语: pid_t waitpid(pid_t pid, int *status, int options); 其中最后一个参数可写成 WNOHANG,作用为立刻返回调用(即是子进程还没有退出) 但我觉得waitpid的作用不就是为了让父进程等待子进程退出后再执行操作吗? 那如果写成...
pid_t waitpid(pid_t pid, int *status, int options);
其中最后一个参数可写成 WNOHANG,作用为立刻返回调用(即是子进程还没有退出)
但我觉得waitpid的作用不就是为了让父进程等待子进程退出后再执行操作吗?
那如果写成 waitpid(child, &status, WNOHANG) 有什么作用呢,通常在什么情况
下会这么用呢? 大家帮解释一下,谢谢。
其中最后一个参数可写成 WNOHANG,作用为立刻返回调用(即是子进程还没有退出)
但我觉得waitpid的作用不就是为了让父进程等待子进程退出后再执行操作吗?
那如果写成 waitpid(child, &status, WNOHANG) 有什么作用呢,通常在什么情况
下会这么用呢? 大家帮解释一下,谢谢。
|
在父进程不打算阻塞等待子进程返回时,可以这样使用。
父进程可以定期轮询子进程的状态。
父进程可以定期轮询子进程的状态。
|
waitpid()会暂时停止目前进程的执行,直到有信号来到或子进程结
束。
WNOHANG 如果没有任何已经结束的子进程则马上返回,不予以等
待。
使用while来轮询
束。
WNOHANG 如果没有任何已经结束的子进程则马上返回,不予以等
待。
使用while来轮询