zx_job_create
名称
job_create —— 创建新的子作业
概要
#include <zircon/syscalls.h>
zx_status_t zx_job_create(zx_handle_t job, uint32_t options, zx_handle_t* out);
描述
job_create() 在给定父作业的情况下创建一个新的子作业对象。
如果调用成功,则返回新创建的作业的句柄。
内核跟踪并限制作业的“高度值”,即与根作业的距离值。 在高度超过内部“最大高度值”的父作业下创建子作业是非法的(但在该作业下创建进程却是合法的)。
作业句柄可以被用于等待(TODO(cpu):展开描述)。
权限
TODO(ZX-2399)
返回值
job_create() 调用成功则返回ZX_OK和(通过out)返回新作业的句柄,如果调用失败,则返回负的错误码。
错误码
ZX_ERR_BAD_HANDLE:job是无效句柄。
ZX_ERR_WRONG_TYPE:job不是作业类型的句柄。
ZX_ERR_INVALID_ARGS:options是非零值,或out是无效指针。
ZX_ERR_ACCESS_DENIED:job没有ZX_RIGHT_WRITE或ZX_RIGHT_MANAGE_JOB权限。
ZX ERR_OUT_OF_RANGE:job的高度值太大,无法创建子作业。
ZX_ERR_NO_MEMORY:由于内存不足导致的失败。而用户空间无法处理这个(不太可能发生的)错误。在将来的构建版本中,将不再出现此错误。
ZX_ERR_BAD_STATE:父作业对象处于已死亡状态。