fork() - Unix、Linux 系統呼叫 - 技術教學
Tutorials Point


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

fork() - Unix、Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

fork - 建立子程序

語法

#include <sys/types.h>
#include <unistd.h> 

pid_t fork(void);

描述

fork() 建立一個子程序,該子程序僅在其 PID 和 PPID 以及資源利用率設定為 0 方面與父程序不同。檔案鎖和掛起的訊號不會被繼承。

在 Linux 下,fork() 使用寫時複製頁面實現,因此它唯一產生的開銷是複製父程序頁表所需的時間和記憶體,以及為子程序建立唯一的任務結構。

返回值

成功時,子程序的 PID 將返回到父程序的執行執行緒中,並且在子程序的執行執行緒中返回 0。失敗時,將在父程序的上下文中返回 -1,不會建立子程序,並且errno將被適當地設定。

錯誤

錯誤程式碼描述
EAGAIN fork() 無法分配足夠的記憶體來複制父程序的頁表併為子程序分配任務結構。
EAGAIN 無法建立新程序,因為遇到了呼叫者的RLIMIT_NPROC資源限制。要超過此限制,程序必須具有CAP_SYS_ADMINCAP_SYS_RESOURCE功能。
ENOMEM fork() 由於記憶體緊張而無法分配必要的核心結構。

符合標準

SVr4、4.3BSD、POSIX.1-2001。

參見



previous next Printer Friendly

廣告


  

廣告



廣告