wait 和 waitpid 的區別

2021-05-22 14:12:47 字數 692 閱讀 9226

父程序可能比子程序早結束,如果父程序要阻塞以等待子程序,可以使用wait或waitpid函式,wait函式只是waitpid函式的簡化版。

#include

#pid_t wait (int * statloc); 

#pid_t waitpid (pid_t pid, int * statloc, int optins);

區別:在乙個子程序終止前,wait使其呼叫者被阻塞,而waitpid有乙個選項,可以使呼叫者阻塞或者不阻塞。

對於waitpid函式中的pid引數的作用見下表:

pid == -1

等待任一子程序。

pid > 0

等待其程序id與pid相等的子程序

pid == 0

等待其組id等於呼叫程序組id的任一的子程序

pid < -1

等待其組id等於pid絕對值的任一的子程序

對於waitpid函式中的options引數的作用見下表:

wcontinued

若實現支援作業控制,那麼由pid指定的任一子程序在暫停後已經繼續,但是狀態沒報告,則返回其狀態

wnohang

若由pid指定的子程序並不是立即可用的,則waitpid不阻塞,此時返回值為0

wuntraced

若實現支援作業控制,那麼由pid指定的任一子程序已經處於暫停狀態並沒報告過,則返回其狀態

wait和waitpid的區別

函式原型 include include pid t wait int status pid t waitpid pid t pid,int status,int options 概括 wait函式是waitpid函式的包裝。1.當pid 1,等待任何乙個子程序退出,和wait函式作用一樣。2.當p...

wait和 wait pid函式用法

wait和 wait pid函式用法 wait的函式原型是 i nclude 提供型別pid t的定義 i nclude pid t wait int status 程序一旦呼叫了wait,就立即阻塞自己,由wait自動分析是否當前程序的某個子程序已經退出,如果讓它找到了這樣乙個已經變成殭屍的子程序...

wait和waitpid函式詳解

wait的函式原型是 include include pid t wait int status 程序一旦呼叫了wait,就立即阻塞自己,由wait自動分析是 否當前程序的某個子程序已經退出,如果讓它找到了這樣乙個 已經變成殭屍的子程序,wait就會收集這個子程序的資訊,並 把它徹底銷毀後返回 如果...