I was reminded in an article about sysinfo() on Linux, also gave me a change to remind myself of some basic C programming principles, e.g. bitwise shifts.
#include <stdio.h>
#include <sys/sysinfo.h>
int main() {
struct sysinfo info;
float todivideby = 0.00;
sysinfo(&info);
printf("Uptime (s) = %ld\n",info.uptime);
printf("SI_LOAD_SHIFT = %d\n", SI_LOAD_SHIFT);
todivideby = 1<<SI_LOAD_SHIFT;
//printf("divide by: %.2f\n", todivideby);
printf("Load Averages %.2f,%.2f,%.2f\n",info.loads[0]/todivideby, info.loads[1]/todivideby, info.loads[2]/todivideby);
printf("Totalram = %ld memory units\n",info.totalram);
printf("Freeram = %ld memory units\n",info.freeram);
printf("Memory used = %ld memory units\n", info.totalram - info.freeram);
printf("Sharedram = %ld memory units\n",info.sharedram);
printf("bufferram = %ld memory units\n",info.bufferram);
printf("totalswap = %ld memory units\n",info.totalswap);
printf("freeswap = %ld memory units\n",info.freeswap);
printf("totalhigh = %ld memory units\n",info.totalhigh);
printf("freehigh = %ld memory units\n",info.freehigh);
printf("Memory unit = %d bytes\n", info.mem_unit);
printf("Number of procs = %d\n", info.procs);
return 0;
}