zx_job_create

摘要

创建新作业。

声明

#include <zircon/syscalls.h>

zx_status_t zx_job_create(zx_handle_t parent_job,
                          uint32_t options,
                          zx_handle_t* out);

说明

zx_job_create() 根据以下条件创建一个新的子作业对象: 父级作业。

成功后,系统将返回新作业的句柄。

内核会跟踪“高度”值并加以限制,也就是作业的 距离根作业的距离。在父亲的子女下创建工作是违法的 高度超出了内部的“最大高度”值。(不过, 此类作业下的某个进程)。

作业句柄可能会等待(TODO(cpu):展开)

权限

parent_job 必须为 ZX_OBJ_TYPE_JOB 类型且具有 ZX_RIGHT_MANAGE_JOB

返回值

zx_job_create() 会返回 ZX_OK 和新作业的句柄 (通过 out)。如果失败,错误值为负值 。

错误

ZX_ERR_BAD_HANDLE parent_job 不是有效的句柄。

ZX_ERR_WRONG_TYPE parent_job 不是作业句柄。

ZX_ERR_INVALID_ARGS options 为非零值,或 out 为无效的指针。

ZX_ERR_ACCESS_DENIED parent_job 不包含 ZX_RIGHT_WRITE 或 右侧 ZX_RIGHT_MANAGE_JOB

ZX_ERR_OUT_OF_RANGE parent_job 的高度过大,无法创建子作业。

ZX_ERR_NO_MEMORY 因内存不足而失败。 用户空间没有好办法处理这种(不太可能)错误。 在将来的版本中,此错误不会再发生。

ZX_ERR_BAD_STATE 父级作业对象处于终止状态。

另请参阅