在Linux中,waitpid函數用于等待指定的子進程結束。
waitpid函數有三個參數:
- pid:要等待的子進程的進程ID。如果pid為-1,則表示等待任何子進程。如果pid為0,則表示等待與調用進程屬于同一個進程組的任何子進程。如果pid大于0,則表示等待指定進程ID的子進程。
- status:一個整數指針,用于存儲子進程的終止狀態。如果傳遞了NULL,則表示不關心子進程的終止狀態。
- options:一個整數,用于指定等待子進程的行為。常用的值有:
- WNOHANG:如果沒有終止的子進程,立即返回而不阻塞。
- WUNTRACED:如果子進程處于暫停狀態而不是終止狀態,也會返回。
- WCONTINUED:如果子進程先前被暫停而現在繼續運行,也會返回。
waitpid函數的返回值為終止的子進程的進程ID。如果沒有子進程退出,返回-1并設置errno為ECHILD。
waitpid函數的用途是等待子進程結束,以便獲取子進程的終止狀態,可以防止子進程成為僵尸進程。