摘要
複製帳號代碼。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_handle_duplicate(zx_handle_t handle,
zx_rights_t rights,
zx_handle_t* out);
說明
zx_handle_duplicate()
會建立帳號代碼的副本,也就是指的同一基礎物件,同時具備新的存取權限權利。
如要複製具有相同權利的帳號代碼,請使用 ZX_RIGHT_SAME_RIGHTS
。如果您需要不同的權利,則必須小於來源控點的嚴格值。您可以使用 ZX_RIGHT_NONE
指定無權利。如要在透過管道轉移時移除 ZX_RIGHT_DUPLICATE
,請使用 zx_channel_write_etc()
。
權限
handle 必須具有 ZX_RIGHT_DUPLICATE
。
傳回值
zx_handle_duplicate()
會在成功時透過 out 傳回 ZX_OK
和重複的帳號代碼。
錯誤
「ZX_ERR_BAD_HANDLE
」的帳號代碼無效。
ZX_ERR_INVALID_ARGS
要求的權利並非「帳號代碼」權利子集,或「out」為無效指標。
ZX_ERR_ACCESS_DENIED
帳號代碼沒有 ZX_RIGHT_DUPLICATE
,因此無法重複。
ZX_ERR_NO_MEMORY
因記憶體不足而失敗。使用者空間無法以任何方式處理這個錯誤 (極可能) 錯誤。日後的建構作業不會再發生這個錯誤。