我有一个C程序打印一些系统统计信息.
#include <sys/sysinfo.h> #include <stdio.h> int main() { int days,hours,mins; struct sysinfo sys_info; if(sysinfo(&sys_info) != 0) perror("sysinfo"); // Uptime days = sys_info.uptime / 86400; hours = (sys_info.uptime / 3600) - (days * 24); mins = (sys_info.uptime / 60) - (days * 1440) - (hours * 60); printf("Uptime: %ddays,%dhours,%dminutes,%ldseconds\n",days,mins,sys_info.uptime % 60); // Load Averages for 1,5 and 15 minutes printf("Load Avgs: 1min(%ld) 5min(%ld) 15min(%ld)\n",sys_info.loads[0],sys_info.loads[1],sys_info.loads[2]); printf("Total Ram: %lluk\tFree: %lluk\n",sys_info.totalram *(unsigned long long)sys_info.mem_unit / 1024,sys_info.freeram *(unsigned long long)sys_info.mem_unit/ 1024); // Number of processes currently running. printf("Number of processes: %d\n",sys_info.procs); return 0; }
我的问题是负载平均值不同于/ proc / loadavg@H_301_5@
./a.out Uptime: 1days,4hours,1minutes,16seconds Load Avgs: 1min(13248) 5min(14880) 15min(11840) Total Ram: 2052956k Free: 188104k Number of processes: 265
为什么?我打印13248但“top”或“cat / proc / loadavg”给出0.24.问题是什么?@H_301_5@