第8章節 程序控制

2021-08-02 04:58:58 字數 938 閱讀 6369

1. 每乙個程序都有唯一的乙個非負整數程序id

2.核心態:程序呼叫了系統api(注意不是標準庫函式), 正在執行核心**的狀態

使用者態:正在執行的是使用者編寫的**狀態

3.核心自舉:自舉是指上電自檢,即核心檢查硬體平台都擁有什麼硬體,為硬體載入驅動,最終載入根文 件系統並執行第乙個程序。

程序id = 1的程序,稱為init程序,該程序在核心自舉結束後,由核心呼叫,負責啟動系統, init程序通常讀一些與系統初始化相關的檔案, 比如/etc/init.d, etc/inittab等, 然後啟動系統, init程序絕不會終止, 他是乙個普通的使用者程序(區別於id = 0的排程程序, 屬於核心**中的程序) , init程序是所有孤兒程序的父程序 4.

#include pid_t getpid(void)  //獲取當前程序的id

pid_t getppid(void) //獲取當前程序的父程序id

uid_t getuid(void) //獲取程序的實際使用者id

uid_t geteuid(void) //獲取程序有效使用者id

gid_t getgid(void) //獲取呼叫程序的實際組id

gid_t getegid(void) //獲取呼叫程序的有效組id

//正常情況下:實際使用者id = 有效使用者id, 實際組id = 有效組id

pid_t fork(void) //返回值為0 表示的是子程序, 返回值》0表示的是進入父程序, 其返回值為子程序的id號

#include

#include

using namespace std;

int main(int argc, char *argv)

else

return 0; }

第8章 程序控制

pid t getppid void 返回值 呼叫程序的父程序id uid t getuid void 返回值 呼叫程序的實際使用者id uid t geteuid void 返回值 呼叫程序的有效使用者id gid t getgid void 返回值 呼叫程序的實際組id gid t getegi...

第8章程序控制總結

1 父子程序的程式空間 子程序獲得父程序的資料空間 堆 棧的副本,即不共享這些空間 父子程序共享正文段 不過現在又很多實現採用cow寫時複製技術,即共享空間,發生修改時只為修改區域製作副本 2 檔案共享 父子程序各自維護程序表項 記錄有檔案描述符 檔案描述符標誌 檔案表指標 父子程序共享檔案表 記錄...

C primer 第8章節 函式探幽

1.內聯函式比一般的函式執行速度要稍快,但是代價是需要付出更多的記憶體。如果程式在10個地方呼叫同乙個內聯函式,那麼該程式將包含該程式的10個副本。2.使用內聯函式,可以有三種方法 1 在函式宣告的時候,加上關鍵字inline.2 在函式定義的時候,加上關鍵字inline.3 類中實現的函式,將自動...