我試圖編寫一個簡單的程序來提醒我,當內存越來越充足,但我有一些問題與sysinfo(),示例程序是在C中, ve從一個網站抓取了它的代碼似乎沒問題的例子,爲什麼會出現這種情況?對不起,我的英語不是我的母語...C - sysinfo()返回錯誤的值i686
代碼如下:
/* sysinfo.c by [email protected]
*
* Display the uptime, load averages, total ram, free ram,
* shared ram, buffered ram, total swap, free swap, and
* number of processes running on a linux machine.
*
* http://www.metalshell.com/
*
*/
#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, hours, 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]);
// Total and free ram.
printf("Total Ram: %ldk\tFree: %ldk\n", sys_info.totalram/1024,
sys_info.freeram/1024);
// Shared and buffered ram.
printf("Shared Ram: %ldk\n", sys_info.sharedram/1024);
printf("Buffered Ram: %ldk\n", sys_info.bufferram/1024);
// Swap space
printf("Total Swap: %ldk\tFree: %ldk\n", sys_info.totalswap/1024,
sys_info.freeswap/1024);
// Number of processes currently running.
printf("Number of processes: %d\n", sys_info.procs);
return 0;
}
http://www.metalshell.com/source_code/114/Sysinfo.html – kainlite 2010-11-19 21:15:12
在那個鏈接是源代碼... – kainlite 2010-11-19 21:15:28
你遇到什麼問題?什麼工作不正常? – 2010-11-19 21:16:25