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 類中實現的函式,將自動...