#include <kstat.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/cpuvar.h>
int main()
{
kstat_ctl_t *kopen = NULL;
kstat_t **cpu_ks;
cpu_stat_t *cpu_stat;
kstat_t *lookup;
kid_t chaind_update;
kstat_named_t *data_lookup;
if(!kopen)
{
kopen = kstat_open();
}
/* chaind_update = kstat_chain_update(kopen); */
lookup = kstat_lookup(kopen, "unix", 0, "system_misc");
if(kstat_read(kopen, lookup, 0) == -1)
perror("kstat_read");
data_lookup = kstat_data_lookup(lookup, "avenrun_1min");
printf("1min : %d\n", data_lookup->value.ui32);
data_lookup = kstat_data_lookup(lookup, "avenrun_5min");
printf("5min : %d\n", data_lookup->value.ui32);
data_lookup = kstat_data_lookup(lookup, "avenrun_15min");
printf("15min: %d\n", data_lookup->value.ui32);
kstat_close(kopen);
}
(E3500>root)/data# gcc -o kstat_cpu kstat_cpu.c -lkstat
gcc -o test uptime.c -lksat -D_SOLARIS_