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

列出特定资源控制的所有值-操作对

以下示例列出了特定资源控制 task.max-lwps 的所有值-操作对。该示例的要点是 getrctl(2) 使用两个资源控制块,并返回 RCTL_NEXT 标志的资源控制块。要在所有的资源控制块中迭代,请使用 rcb_tmp rctl 块反复交换此处显示的资源控制块值。

rctlblk_t *rcb1, *rcb2, *rcb_tmp;

	...

/* Omit return value checking/error processing to keep code sample short */

rcb1 = calloc(1, rctlblk_size()); /* rctl blocks are opaque: */

                               /* "rctlblk_t rcb" does not work */

rcb2 = calloc(1, rctlblk_size());

getrctl("task.max-lwps", NULL, rcb1, RCTL_FIRST);

while (1) {

     print_rctl(rcb1);

     rcb_tmp = rcb2;

     rcb2 = rcb1;

     rcb1 = rcb_tmp;        /* swap rcb1 with rcb2 */

     if (getrctl("task.max-lwps", rcb2,  rcb1, RCTL_NEXT) == -1) {

          if (errno == ENOENT) {

               break;

     } else {

          perror("getrctl");

          exit (1);

     }

     }

}