在程序控制的章節我們講解了我們的程序建立,這章節對程序控制進行補充,
在我們建立乙個程序之後我們避免不了我們去終止我們的程序。
終止場景
終止方式
#include void _exit(int status);
#include void _exit(int status);
雖然兩個函式都是可以讓程序終止的,但是兩個函式並不是完全一樣的
exit和_exit的區別
函式返回值
兩個函式的返回值都是傳入引數,用來儲存我們的退出原因。
是乙個全域性變數,每個系統呼叫執行完畢之後都會重置errno這個變數,這個全域性變數儲存的就是當次呼叫的系統介面呼叫介面錯誤編號,當呼叫出錯的時候可以使用perror和strerror函式對出錯資訊進行列印
程序等待其實就是父程序等待子程序退出,避免殭屍程序,在預設的情況下是乙個阻塞函式。
阻塞的概念:為了完成一項工作,如果當前條件不具備完成條件,則一直等待,知道最後完成
非阻塞的概念:為了完成一向工作,如果當前不具備完成條件,則立即報錯返回
#include #include pid_t wait(int *status);
pid_t waitpid(pid_t pid, int *status, int options);
wait函式是等待任意乙個子程序退出則退出
wait_pid預設是可以等待任意乙個子程序退出則退出,當時我們可以設定我們的引數,可以**指定的引數
waitpid
pid:當pid=-1的時候等待任意乙個子程序,與wait函式類似,當pid>0的時候我們等待其程序id和pid相等的子程序退出則退出。
options:選擇引數
程序控制(2)
在程序控制 1 中,介紹了建立子程序fork和vfork函式,其實在建立乙個程序之後,子程序往往會呼叫乙個exec函式去執行另乙個程式。當呼叫乙個exec函式之後,該程序執行的程式完全替換為新程式,而新程式從main函式開始執行。exec函式並不建立新的程序,前後程序id不變,只是用磁碟上的乙個新程...
linux 程序控制
什麼是程序 每乙個程序在系統中都有唯一的id標示它,此id為程序標示符 程序標示符的型別 pit t,其實是乙個無符號整形 乙個程序標示符對應唯一的乙個程序,多個程序標示符可以對應同乙個程式 程序和程式的區別 程式 可執行的二進位制 檔案,這種檔案載入到記憶體中執行就得到了乙個程序 程序 同乙個程式...
Linux程序控制
linux程序控制 獲取pid include include pid t getpdi void 獲取本程序id pdi t getppid vodi 獲取父程序id,及獲取建立子程序的程序id 程序建立 include pid t fork void 建立子程序 呼叫一次返回兩次值 1.父程序中...