程序的等待和退出

2021-09-12 22:32:00 字數 445 閱讀 3965

等待和退出實際上是父子程序之間的一種互動,完成子程序的資源**。

關於wait()的實現,實際上是把程序的狀態改為 sleep;

那麼這兩者誰先發生呢?先後順序有什麼影響?

1. 當有子程序存活時,父程序進入等待狀態,等待子程序的返回結果;當某子程序呼叫exit()時,喚醒父程序,將exit()返回值作為父程序中wait()的返回值。此時,wait在前,exit在後。

2. 有殭屍子程序等待時,wait()立即返回其中乙個值。此時exit()在前,子程序呼叫exit()來等待父程序處理,父程序的wait()會立即返回這個子程序的值。

exit()的功能:

總的來說就是釋放資源 -> 把自己的狀態改為殭屍狀態 -> 喚醒處於wait狀態的父程序**自己  ->  讓處理機切換到其他程序

程序等待與退出

程序等待就是等待子程序的狀態改變,獲取子程序的退出狀態碼,允許系統釋放子程序的所有資源,這時候子程序在所有資源才會被釋放掉。程序等待是避免產生殭屍程序的主要方式 程序等待的方式 1.pid t wait int status status 用於獲取子程序 退出狀態碼 返回值是返回退出的子程序pid ...

程序的建立,等待,退出,

標頭檔案 include 定義函式 int system const char string 函式說明 system 會呼叫fork 產生子程序,由子程序來呼叫 bin sh c string來執行引數string字串所代表的命令,此命令執行完後隨即返回原呼叫的程序。在呼叫system 期間sigc...

建立程序並等待程序退出

cereatepross.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include include using namespace std bool findandkillprocessbyname lpctstr strp...