fork出的子進程和父進程的繼承關係【轉載】

【原文地址】http://blog.163.com/dengjingniurou@126/blog/static/53989196200962924412524/web

fork出的子進程和父進程的繼承關係  

2009-07-29 14:44:12|  分類: 默認分類|舉報|字號 訂閱編程

 
 

 fork出來的子進程,基本上除了進程號以外父進程的全部東西都有一份拷貝,基本就意味着不是所有,下面咱們要說的是子進程從父進程那裏繼承了什麼東西,什麼東西沒有繼承。還有一點須要注意,子進程獲得的只是父進程的拷貝,而不是父進程資源的自己。session

由子進程自父進程繼承到:
     異步


進程的資格(真實(real)/有效(effective)/已保存(saved)
          用戶號(UIDs)和組號(GIDs))函數


環境(environment)url


堆棧spa


內存.net


打開文件的描述符(注意對應的文件的位置由父子進程共享,
          這會引發含糊狀況)orm


執行時關閉(close-on-exec) 標誌 (譯者注:close-on-exec標誌可經過fnctl()對文件描
     述符設置,POSIX.1要求全部目錄流都必須在exec函數調用時關閉。更詳細說明,
     參見《UNIX環境高級編程》 W. R. Stevens, 1993, 
     尤晉元等譯(如下簡稱《高級編程》), 3.13節和8.9節)blog


信號(signal)控制設定


nice值
          (譯者注:nice值由nice函數設定,該值表示進程的優先級,
          數值越小,優先級越高)


進程調度類別(scheduler class)
          (譯者注:進程調度類別指進程在系統中被調度時所屬的類別,不一樣類別有不一樣優先級,根據進程調度類別和nice值,進程調度程序可計算出每一個進程的全局優先級(Global process prority),優先級高的進程優先執行)


進程組號


對話期ID(Session ID) (譯者注:譯文取自《高級編程》,指:進程所屬的對話期
     (session)ID, 一個對話期包括一個或多個進程組, 更詳細說明參見《高級編程》
     9.5節)


當前工做目錄


根目錄
          (譯者注:根目錄不必定是「/」,它可由chroot函數改變)


文件方式建立屏蔽字(file mode creation mask (umask))
          (譯者注:譯文取自《高級編程》,指:建立新文件的缺省屏蔽字)


資源限制


控制終端


子進程所獨有:


進程號


不一樣的父進程號(譯者注:
          即子進程的父進程號與父進程的父進程號不一樣,
          父進程號可由getppid函數獲得)


本身的文件描述符和目錄流的拷貝(譯者注:
          目錄流由opendir函數建立,因其爲順序讀取,顧稱「目錄流」)


子進程不繼承父進程的進程,正文(text),
          數據和其它鎖定內存(memory locks)
     (譯者注:鎖定內存指被鎖定的虛擬內存頁,鎖定後,
     不容許內核將其在必要時換出(page out),
     詳細說明參見《The GNU C Library Reference Manual》 2.2版,
     1999, 3.4.2節)


在tms結構中的系統時間(譯者注:tms結構可由times函數得到,
          它保存四個數據用於記錄進程使用中央處理器
          (CPU:Central Processing Unit)的時間,包括:用戶時間,系統時間,
          用戶各子進程合計時間,系統各子進程合計時間)


資源使用(resource utilizations)設定爲0


阻塞信號集初始化爲空集(譯者注:原文此處不明確,
          譯文根據fork函數手冊頁稍作修改)


不繼承由timer_create函數建立的計時器


不繼承異步輸入和輸出


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/xjh_Love_paopao/archive/2008/12/26/3612519.aspx

相關文章
相關標籤/搜索