- 论坛徽章:
- 0
|
5可用积分
想用sysinfo()得到内存使用情况
#include <stdio.h>
#include <stdlib.h>
#include <sys/sysinfo.h>
#include <sys/types.h>
int main(void)
{
struct sysinfo s_info;
int error;
error = sysinfo(&s_info);
printf("code error = %d\n", error);
printf("Uptime = %lds\nLoad: 1 min %lu / 5 min %lu / 15 min %lu\n"
"RAM: total %lu / free %lu / shared %lu\n"
"Memory in buffers = %lu\nSwap: total %lu / free %lu\n"
"Number of processes = %d\n",
s_info.uptime, s_info.loads[0],
s_info.loads[1], s_info.loads[2],
s_info.totalram, s_info.freeram,
s_info.sharedram, s_info.bufferram,
s_info.totalswap, s_info.freeswap,
s_info.procs);
exit(EXIT_SUCCESS);
}
|
这是从man 2 intro里的例子。 在我的FC8上,结果正确。 但在另一台fc7,和另一台centos 5.2上,结果是实际的 1/4096。这是为什么呢?  |
最佳答案
查看完整内容
我是说每台机器的struct sysinfo都不太一样吧?至少看lz的是单位不一样
|