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