zx_handle_replace
名称
handle_replace —— 替换句柄
概要
#include <zircon/syscalls.h>
zx_status_t zx_handle_replace(zx_handle_t handle, zx_rights_t rights, zx_handle_t* out);
描述
handle_replace() 为handle创建一个引用了相同底层对象,并且具有新的访问权限rights的替换。
替换之后,handle将作废掉。
如果rights是ZX_RIGHT_SAME_RIGHTS权限,则替换句柄将具有与原始句柄相同的权限。否则,rights必须是原始句柄权限的子集。
权限
无需任何权限。
返回值
handle_replace() 成功则返回ZX_OK,以及(通过*out传递)替换后的句柄。
错误码
ZX_ERR_BAD_HANDLE:handle是无效句柄。
ZX_ERR_INVALID_ARGS:rights请求不是handle权限的子集,或者out是无效指针。
ZX_ERR_NO_MEMORY:由于内存不足导致的失败。而用户空间无法处理这个(不太可能发生的)错误。在将来的构建版本中,将不再出现此错误。