Xinqi Bao's Git
08a97de16ffd8a9cffb51e8d1956f77643f2fad3
1 /* See LICENSE file for copyright and license details. */
17 fp
= fopen("/proc/meminfo", "r");
19 fprintf(stderr
, "fopen '/proc/meminfo': %s\n",
24 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1,
26 fprintf(stderr
, "fread '/proc/meminfo': %s\n",
33 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
35 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
37 if ((match
= strstr(buf
, "SwapFree")) == NULL
)
39 sscanf(match
, "SwapFree: %ld kB\n", &free
);
41 return bprintf("%f", (float)free
/ 1024 / 1024);
47 long total
, free
, cached
;
52 fp
= fopen("/proc/meminfo", "r");
54 fprintf(stderr
, "fopen '/proc/meminfo': %s\n",
59 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1,
61 fprintf(stderr
, "fread '/proc/meminfo': %s\n",
68 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
70 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
72 if ((match
= strstr(buf
, "SwapCached")) == NULL
)
74 sscanf(match
, "SwapCached: %ld kB\n", &cached
);
76 if ((match
= strstr(buf
, "SwapFree")) == NULL
)
78 sscanf(match
, "SwapFree: %ld kB\n", &free
);
80 return bprintf("%d", 100 * (total
- free
- cached
) / total
);
91 fp
= fopen("/proc/meminfo", "r");
93 fprintf(stderr
, "fopen '/proc/meminfo': %s\n",
97 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1,
99 fprintf(stderr
, "fread '/proc/meminfo': %s\n",
106 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
108 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
110 return bprintf("%f", (float)total
/ 1024 / 1024);
116 long total
, free
, cached
;
121 fp
= fopen("/proc/meminfo", "r");
123 fprintf(stderr
, "fopen '/proc/meminfo': %s\n",
127 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1,
129 fprintf(stderr
, "fread '/proc/meminfo': %s\n",
136 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
138 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
140 if ((match
= strstr(buf
, "SwapCached")) == NULL
)
142 sscanf(match
, "SwapCached: %ld kB\n", &cached
);
144 if ((match
= strstr(buf
, "SwapFree")) == NULL
)
146 sscanf(match
, "SwapFree: %ld kB\n", &free
);
148 return bprintf("%f", (float)(total
- free
- cached
) / 1024 / 1024);
150 #elif defined(__OpenBSD__)