【发布时间】:2010-11-19 21:13:31
【问题描述】:
我正在尝试编写一个简单的程序以在 ram 已满时提醒我,但我在 sysinfo() 方面存在一些问题,示例程序是 C 语言,我从一个带有示例的站点中获取了它代码似乎没问题,关于为什么会发生这种情况的任何想法?对不起我的英语不是我的母语...
代码如下:
/* sysinfo.c by detour@metalshell.com
*
* 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;
}
【问题讨论】:
-
那个链接是源代码...
-
您遇到了什么问题?什么工作不正常?
-
对我来说似乎工作正常。
-
@user313941:欢迎来到 SO。请使用“编辑”按钮为您的问题添加更多信息/精度。不要将其隐藏在 cmets 中。为了让我们清楚您遇到的问题,您必须更详细地了解您面临的实际问题。你的程序的输出是什么,你期望的输出是什么?