Linux 程序控制

2021-08-01 23:44:56 字數 1292 閱讀 9741

1.linux程序

1.1程式和程序

程序控制塊pcb

時間片程序標識 標識號

父程序 init程序 id 為1

1.2程序的執行身份

真實使用者 id 和真實組 id 可以通過函式getuid()和 getgid()獲得

有效使用者 id 和有效組 id 通過函式geteuid()和 getegid()獲得

影子口令 /etc/shadow

1.3程序的狀態

執行態就緒態

等待態1.4程序結構

資料段**段

堆疊段1.5程序管理

ps 檢視系統中的程序

top 動態顯示系統中的程序

renice 改變正在執行程序的優先順序

kill 向程序傳送訊號(包括後台程序)

bg 將掛起(暫停)的程序放到後台執行

ps –aux 檢視所有的程序

ps -elf 顯示父子程序

./a.out &(&表示後台執行)

(乙個死迴圈, 按 ctrl+z 可以把程序暫停)

jobs 可以檢視後台任務

fg 1 把後台任務帶到前台

kill -9 程序號 表示向某個程序傳送 9 號訊號,從而殺掉某個程序

stat 狀態{s睡眠 t暫停 r執行 z殭屍}

2.程序的建立

linux 下有四類建立子程序的函式: system(),fork(),exec*(),popen()

#include

pid_t fork(void);

//它執行一次返回兩個值

int execl(const char *path, const char *arg, ...)

pclose 等待新程序的結束, 而不是殺新程序

3.程序控制與終止

3.1程序的控制

孤兒程序(父程序先退出)

殭屍程序(子程序先退出)--系統不會自動清理掉子程序的環境, 而必須由父程序呼叫 wait 或 waitpid 函式來完成清理工作

#include

#include

pid_t wait(int *status);

pid_t waitpid(pid_t pid, int *status, int options);

3.2程序的終止

main函式自然返回

exit函式--(會清理i/o緩衝)

_exit函式

abort函式

接收到能導致程序終止的訊號 ctrl+c sigint ctrl+\ sigquit

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

linux程序控制

linux程序控制 編寫命令直譯器 一 背景 之前在 計算機作業系統 這本書中已經多次接觸了程序這一概念,而程序在作業系統中具體是做什麼的呢?卻沒有實際的與程序發生過互動,因此也就沒有實際的感受。對於我來說程序僅僅停留在概念的層面上 程序是程式執行時的記憶體空間和設定或者說程序就是程式的進行時。沒有...