linux 程序控制2

2021-09-17 18:55:35 字數 930 閱讀 9283

在程序控制的章節我們講解了我們的程序建立,這章節對程序控制進行補充,

在我們建立乙個程序之後我們避免不了我們去終止我們的程序。

終止場景

終止方式

#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.父程序中...