程序的控制 Linux

2021-08-20 16:20:49 字數 1364 閱讀 7080

編寫程式:建立乙個子程序,父程序列印10句:parent process!子程序列印10句:child process! 要求用程序控制的方法,按順序先輸出子程序的10句話,再輸出父程序的10句話。

#include #include #include #include void main()

}

執行結果:

說明:wait

( )等待子程序執行結束。如果子程序沒有完成,父程序一直等待。

wait( )

將呼叫程序掛起,直至其子程序因暫停或終止而發來軟中斷訊號為止。如果在

wait( )

前已有子程序暫停或終止,則呼叫程序做適當處理後便返回。

系統呼叫格式:

int

wait(status)

int

*status;

其中,status

是使用者空間的位址。它的低8位反應子程序狀態,為0表示子程序正常結束,非0則表示出現了各種各樣的問題;高8位則帶回了

exit( )

的返回值。

exit( )

返回值由系統給出。

核心對wait( )

作以下處理:

(1)首先查詢呼叫程序是否有子程序,若無,則返回出錯碼;

(2)若找到一處於「僵死狀態」的子程序,則將子程序的執行時間加到父程序的執行時間上,並釋放子程序的程序表項;

(3)若未找到處於「僵死狀態」的子程序,則呼叫程序便在可被中斷的優先順序上睡眠,等待其子程序發來軟中斷訊號時被喚醒。

exit( )

終止程序的執行。

系統呼叫格式:

void exit(status)

int status;

其中,status

是返回給父程序的乙個整數,以備查考。

為了及時**程序所占用的資源並減少父程序的干預,

unix/linux

利用exit( )

來實現程序的自我終止,通常父程序在建立子程序時,應在程序的末尾安排一條

exit( )

,使子程序自我終止。exit(0)表示程序正常終止,exit(1)表示程序執行有錯,異常終止。

如果呼叫程序在執行

exit( )

時,其父程序正在等待它的終止,則父程序可立即得到其返回的整數。核心須為

exit( )

完成以下操作:

(1)關閉軟中斷

(2)**資源

(3)寫記帳資訊

(4)置程序為「僵死狀態」

Linux 程序的控制

1 fork函式 在linux中fork函式時非常重要的函式,它從已存在程序中建立乙個新程序。新程序為子程序,而原程序為父程序。程序呼叫fork,當控制轉移到核心中的fork 後,核心做 我們來看一段程式具體了解一下fork 程式執行結果 2 寫時拷貝 fork常規用法 fork呼叫失敗的原因1 程...

Linux的程序控制

1 有沒有命令能讓程序suspend and resume 參考 http zhidao.baidu.com question 57671342 kill stop 1234 將該程序暫停。如果要讓它恢復到後台,用kill cont 1234 很多在前台執行的程式這樣是不行的 如果要恢復到前台,請在...

linux 程序控制

什麼是程序 每乙個程序在系統中都有唯一的id標示它,此id為程序標示符 程序標示符的型別 pit t,其實是乙個無符號整形 乙個程序標示符對應唯一的乙個程序,多個程序標示符可以對應同乙個程式 程序和程式的區別 程式 可執行的二進位制 檔案,這種檔案載入到記憶體中執行就得到了乙個程序 程序 同乙個程式...