vishal_attivio, you are correct, here my functional code:
sigar_t *sigarcpulist; sigar_cpu_info_list_t cpulist; sigar_open(&sigarcpulist); sigar_cpu_info_list_get(sigarcpulist, &cpulist); sigar_close(sigarcpulist); forever { float percent; sigar_t *sigarproclist; sigar_proc_list_t proclist; sigar_open(&sigarproclist); sigar_proc_list_get(sigarproclist, &proclist); for (size_t i = 0; i < proclist.number; i++) { sigar_proc_cpu_t cpu; sigar_proc_cpu_get(sigarproclist, proclist.data[i], &cpu); } Sleep(1000); for (size_t i = 0; i < proclist.number; i++) { sigar_proc_cpu_t cpu; int status = sigar_proc_cpu_get(sigarproclist, proclist.data[i], &cpu); if (status == SIGAR_OK) { sigar_proc_state_t procstate; sigar_proc_state_get(sigarproclist, proclist.data[i], &procstate); percent = cpu.percent * 100 / cpulist.size; qDebug() << procstate.name << percent << "%"; } } sigar_close(sigarproclist); }