zx_process_create

摘要

建立新程序。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_process_create(zx_handle_t job,
                              const char* name,
                              size_t name_size,
                              uint32_t options,
                              zx_handle_t* proc_handle,
                              zx_handle_t* vmar_handle);

說明

zx_process_create() 會建立新程序。

成功時,會處理新程序及其位址空間的根 。zx_process_start() 之後才會開始執行執行緒 物件。

系統會將 name 的字元截斷,而且不得超過 ZX_MAX_NAME_LEN-1 個字元。

當程序的最後一個控制代碼關閉時,該程序就會遭到刪除。

程序可能會等候,且會聲明訊號 程序結束時,ZX_PROCESS_TERMINATED

job 是控制新事件的工作物件 並成為該工作的子項。

options 可包含零或下列標記:

  • ZX_PROCESS_SHARED:建立可與其他其他人共用位址空間的程序 上傳資料集之後,您可以運用 AutoML 自動完成部分資料準備工作使用此旗標建立的程序可傳遞至 zx_process_create_shared()

權限

job 必須是 ZX_OBJ_TYPE_JOB 類型,且含有 ZX_RIGHT_MANAGE_PROCESS

呼叫端工作政策必須允許 ZX_POL_NEW_PROCESS

傳回值

成功時,zx_process_create() 會傳回 ZX_OK,也就是新程序的控制代碼 (透過 proc_handle) 以及其位址空間根的控制代碼 (透過 vmar_handle)。如果失敗,系統會傳回負的錯誤值。

錯誤

ZX_ERR_BAD_HANDLE job 不是有效的帳號代碼。

ZX_ERR_WRONG_TYPE job 並非工作帳號。

ZX_ERR_ACCESS_DENIED job 沒有正確的 ZX_RIGHT_WRITE (僅限非 ZX_HANDLE_INVALID 時)。

ZX_ERR_INVALID_ARGS nameproc_handlevmar_handle 是無效的指標, 或 options 包含無效選項。

ZX_ERR_NO_MEMORY 因記憶體不足而失敗。 使用者空間無法妥善處理這種 (異常) 錯誤。 在日後的版本中不會再發生這個錯誤。

ZX_ERR_BAD_STATE 工作物件處於無效狀態。

另請參閱