傳統的linux模型裡有三種建立或者修改程序的操作--system用於呼叫shell,執行乙個指定的命令;
--fork用於建立乙個新的程序,該程序幾乎是當前程序的乙個完全拷貝;
--exec可以在程序中用另外的程式來替換當前執行的程序。
程序程序是乙個正在執行的程式例項,他也是linux基本的排程單位,乙個程序由如下元素組成
--程序的當前上下文(context),他是程序當前執行狀態;
--程序的當前執行目錄;
--程序訪問的檔案和目錄;
--程式的訪問許可權;
--記憶體和其他分配給程序的系統資源;
程序標識號--程序最知名的屬性就是程序號(processid,pid)和它父程序號(parent processid,ppid).
--pid和ppid都是非零的整數
--乙個pid唯一標識乙個程序。
--乙個程序建立的另乙個新程序稱為子程序。相反的,建立子程序的程序稱為父程序。
--所有程序追溯其祖先最終都會落到程序號為1的程序身上,這個程序叫init程序
-init程序是linux核心啟動後第乙個執行的程式。
-init引導系統,啟動守護程序並且執行必要的程式。
獲取pid和ppidpid_t getpid(
void
);pid_t getppid(
void);
#include #include#include
#include
#include
#include
int main(int arg, char *args)
getlogin函式返回執行程式的使用者登入名。可以把登入名作為引數傳遞給getpwnam函式,這個函式能返回/etc/passwd檔案中與該登入名相應的一行完成資訊。
struct passwd *getpwnam(const
char *name);
name必須是乙個指向包含使用者名稱的字串指標。
getpwnam返回乙個指向passwd結構體的指標。
structpasswd ;
#include #include#include
#include
#include
#include
#include
int main(int arg, char *args)
Linux程序基礎
linux程序概述 程序控制塊 pcb,程序控制塊包含了程序的描述資訊 控制資訊以及資源資訊,它是程序的乙個靜態描述。核心使用程序來控制對cpu和其他系統資源的訪問,並且使用程序來決定在cpu上執行哪個程式,執行多久以及採用什麼特性執行它,核心的排程器負責在所有的程序間分配cpu執行時間,稱為時間片...
Linux 程序基礎
程序是程式執行時的乙個例項,可以分配給處理器並由處理器執行的乙個實體,由單一順序的執行顯示,是當前狀態和相關系統資源描述的活動單元。程序優先順序 可執行程式是指令和資料的集合,作為一種資料資料長期存在,是乙個靜態概念。而程序是可執行程式的一次執行過程,是有生命期,是暫時的,是乙個動態概念。所以同乙個...
Linux守護程序基礎
1 守護程序中涉及到的基本概念 1.1程序組 1.1.1 程序組基本概念 程序組是乙個或多個程序的集合,可以接收來自同乙個終端的各種訊號。每執行乙個程式或是命令都將產生乙個程序組。每個程序屬於乙個程序組,而每個程序組都存在乙個領頭程序 或是叫組長程序 一般程序組的第乙個程序是領頭程序。領頭程序可以建...