2013-12-08 16 views
1

這些狀態是基於linux操作系統的進程狀態定義,以等待爲例,當一個進程不從外部讀取,而不是向外部寫數據而不是在裏面計算時,但困難是我怎麼知道這個進程是現在不計算,如何用c編程語言實現它(如果該過程不是從外部讀取,它可以返回一個讀取錯誤,我知道它現在不讀取,寫入也是如此)。 如: 讀(INT FD,無效* buf中,爲size_t常量) 寫入(INT FD,無效* buf中,爲size_t常量)如何在c語言中準確描述進程狀態(如初始化,運行,等待等)?

+1

答案可能不依賴於語言,但依賴於平臺!你在談論嵌入式設備還是PC? –

+0

謝謝,\t Bit Fiddling Code Monkey,我希望管理進程控制工作進程,工作進程將狀態描述到共享內存,以便管理進程可以判斷工作進程是否正常工作。 – Yangjunwin

回答

0

你不能做它在C的langauge獨立的方式,因爲C有沒有過程的概念。但是,在您的C程序可以訪問可以啓動線程/進程(例如Linux)的庫的所有合理情況下,啓動進程調用通常會返回一個(「進程」)「處理「(或一些代表)由父項目發起的過程。

有一個程序啓動一個進程的相同庫,總會有一個程序檢查啓動進程的狀態,使用進程句柄。

我不熟悉Linux的庫(我懷疑有幾個)。如果您設法啓動子流程,您必須使用一個。去閱讀其他庫元素,直到找到返回進程狀態的元素。

+0

謝謝,Ira,我認爲這可能被描述爲一個過程檢查問題。我想提供一個如何在應用程序中使用它的例子,這可能有助於澄清問題,但我不知道如何上傳我的圖片。 – Yangjunwin

+0

你問的問題是,「如何在C中實現它......」我給出了抽象的答案;你所要做的就是填寫細節。 「描繪」與你最初的問題有什麼關係?你要麼找到過程檢查API,要麼你沒有。你看了? *你看起來在哪裏? –

+0

感謝您的耐心等待,我知道「waitpid」可以提供此功能。 我也在quora上發佈了這個問題,因爲我不知道如何在stackoverflow中上傳我的應用模型。 鏈接是 http://www.quora.com/C-programming-language/How-can-i-describe-the-processes-status-accurately-such-as-initialization-running-waiting-etc-in -c-編程語言?__ snids __ = 249753498&__ NSRC __ = 1#comment417089 – Yangjunwin