wait:進程等待
主要有兩種等待方式:阻塞式等待和非阻塞式等待
阻塞式等待:如果子進程正在運行,父進程將會一直等待著子進程運行結束,并且自己什么事都不干
非阻塞式等待:如果子進程正在運行,父進程將會訪問看子進程是否運行結束,如果運行結束,則父進程開始運行;否則,父進程干其他的事,直到子進程運行結束。
阻塞式等待例程:
運行結果:
休眠5秒后:
這里,有幾個點需要注意一下:
WIFEXITED(status):status的低8位,表示進程退出時的信號。0代表沒有收到信號。非0表示收到信號。
WEXITSTATUS(status):status的次低8位,表示進程的退出碼
非阻塞等待例程:
運行結果:
sleep(2)后:
進程等待可能有幾種結果:
(1) 等待成功,返回子進程的退出碼
(2) 等待成功,但是卻異常退出
(3) 等待失敗,直接退出