1. wait()和waitpid()函式說明
wait()
程式一旦呼叫了wait(), 就立即阻塞自己,由wait自動分析是否有當前程式的某個子程式已經退出,如果讓它找到了一個已經變成殭屍的子程式,wait就會收集這個子程式的資訊,並把它徹底銷燬後返回;如果沒有找到這樣一個子程式,wait就會一直阻塞在這裡,直到一個子程式結束或者該程式接到了一個指定的訊號為止。
waitpid()
waitpid()的作用和wait()一樣,但它並不一定要等待第一個終止的子程式,它還有若干選項,如可提供一個非阻塞版本的wait()功能等。實際上wait()函式只是waitpid()函式的一個特例,在Linux內部實現wait()函式時直接呼叫的就是waitpid()函式。
wait()函式的實現:
static inline pid_t wait(int *wait_stat)
{
return waitpid(-1,wait_stat,0);
}