Linux下程序相關函式介面

2021-10-23 12:25:06 字數 1321 閱讀 7818

pid_t fork

(void);

功能: 建立乙個子程序。

引數: 無。

返回值:

成功:在父程序空間返回子程序的pid,在子程序空間返回0; 失敗: -

1,沒有子程序被建立。

void

exit

(int status)

;功能: 結束當前程序。

返回值:無,一旦呼叫永不返回。

引數:

int status, 使用者期望帶回的狀態值,一般表示任務是否成功。

void

_exit

(int status) 同exit, 區別是_exit函式立即結束程序,不清理快取。

pid_t wait(int

*status);

功能:阻塞地等待乙個程序結束,並獲得其狀態值。

返回值: 成功,返回結束的子程序id; 失敗, -

1;引數:

int*status, 程序狀態的接收緩衝區。

waitpid

(pid_t pid,

int*status,

int option)

;功能: 等待子程序結束,並獲得狀態值。

返回值:失敗,-

1; 指定wnohang並且沒有程序結束, 0; 成功, 結束的程序的id。

引數: 1. pid_t pid, 指定等待的子程序。

2.int

*status, 程序狀態的接收緩衝區。

3.int option, 標誌位選項,例如wnohang表示非阻塞方式獲取子程序狀態。

execlp

execvp

execl

execv

通常是乙個後台程序,它可以脫離終端的控制,不受終端影響,從而在後台執行特殊任務。

建立守護程序的步驟:

1. 建立子程序,並且父程序結束。(保證新的子程序不是程序組組長,因為如果程序已經是某個程序組組長,將不能成功呼叫setsid)

2. 子程序呼叫setsid()

, 建立新的會話組並使自己成為新的會話組長。

3. 關閉所有的檔案描述符。(因為程序在建立過程中繼承了來自于父程序的大量資源,為了保證新程序不受其影響,盡量釋放這些不用的資源)

4. 重設檔案許可權掩碼。(為了保證新的守護程序可以不受限制地新建任何許可權的檔案)

5. 更改工作路徑到根。(當前程序占用工作路徑會導致當前磁碟分割槽無法解除安裝)

最終許可權 = 期望許可權 & (~掩碼)

Linux下程序的相關函式和指令

指令 ps 檢視系統中有哪些程序 ps aux 檢視系統中全部程序 ps aux grep a 查詢a程序 top 任務管理器介面getpid函式 獲取當前程序的程式識別符號 include include pid t getpid void 獲取程序的程序識別符號 pid t getppid vo...

linux 程序管理相關函式

對於linux 函式可以通過命令列指令 man 函式名,檢視函式相關資訊 返回當前程序的pid getpid 建立乙個程序,當執行完這行 後,將會有兩個進製執行下面的 不同的是,父程序pid大於0,子程序pid 0 同時執行 fork 和fork 類似 但是這裡子程序先執行,結束後,執行父程序 vf...

LINUX程序相關的幾個函式

linux程序相關的幾個函式 1.pid t fork void 返回值 若成功呼叫一次則返回兩個值,子程序返回0,父程序返回子程序id 否則,出錯返回 1 2.exit 0 就是退出,傳入的引數是程式退出時的狀態碼,0表示正常退出,其他表示非正常退出,一般都用 1或者1,標準c裡有exit suc...