摘要
建立新程序。
宣告
#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  name、proc_handle 或 vmar_handle 是無效的指標,
或 options 包含無效選項。
ZX_ERR_NO_MEMORY 因記憶體不足而失敗。
使用者空間無法妥善處理這種 (異常) 錯誤。
在日後的版本中不會再發生這個錯誤。
ZX_ERR_BAD_STATE 工作物件處於無效狀態。