该示例类似于设置 pool.comment 属性并添加新属性中显示的示例。
请使用 bcopy(),而不要使用列出特定资源控制的所有值-操作对中的缓冲区交换。
要更改资源控制值,在调用 setrctl() 时请使用 RCTL_REPLACE 标志。新的资源控制块除了使用新的控制值以外,与原有的资源控制块相同。
rctlblk_set_value(blk1, nshares); if (setrctl("project.cpu-shares", blk2, blk1, RCTL_REPLACE) != 0)
该示例将获取项目的 CPU 份额分配 project.cpu-shares,并将其值更改为 nshares。
/* Omit return value checking/error processing to keep code sample short */ blk1 = malloc(rctlblk_size()); getrctl("project.cpu-shares", NULL, blk1, RCTL_FIRST); my_shares = rctlblk_get_value(blk1); printout_my_shares(my_shares); /* if privileged, do the following to */ /* change project.cpu-shares to "nshares" */ blk1 = malloc(rctlblk_size()); blk2 = malloc(rctlblk_size()); if (getrctl("project.cpu-shares", NULL, blk1, RCTL_FIRST) != 0) { perror("getrctl failed"); exit(1); } bcopy(blk1, blk2, rctlblk_size()); rctlblk_set_value(blk1, nshares); if (setrctl("project.cpu-shares", blk2, blk1, RCTL_REPLACE) != 0) { perror("setrctl failed"); exit(1); }