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...