Solaris 10 资源管理器开发者指南

设置 project.cpu-shares 并添加新值

该示例的要点包括以下内容:

该示例将获取项目的 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);

}