Xinqi Bao's Git
0aad07491993d499b98d37c7bdb3c1cc115f509b
1 /* See LICENSE file for copyright and license details. */
17 fp
= fopen("/proc/meminfo", "r");
19 warn("Failed to open file /proc/meminfo");
23 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1, fp
)) == 0) {
24 warn("swap_free: read error");
30 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
32 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
34 if ((match
= strstr(buf
, "SwapFree")) == NULL
)
36 sscanf(match
, "SwapFree: %ld kB\n", &free
);
38 return bprintf("%f", (float)free
/ 1024 / 1024);
44 long total
, free
, cached
;
49 fp
= fopen("/proc/meminfo", "r");
51 warn("Failed to open file /proc/meminfo");
55 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1, fp
)) == 0) {
56 warn("swap_perc: read error");
62 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
64 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
66 if ((match
= strstr(buf
, "SwapCached")) == NULL
)
68 sscanf(match
, "SwapCached: %ld kB\n", &cached
);
70 if ((match
= strstr(buf
, "SwapFree")) == NULL
)
72 sscanf(match
, "SwapFree: %ld kB\n", &free
);
74 return bprintf("%d", 100 * (total
- free
- cached
) / total
);
85 fp
= fopen("/proc/meminfo", "r");
87 warn("Failed to open file /proc/meminfo");
90 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1, fp
)) == 0) {
91 warn("swap_total: read error");
97 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
99 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
101 return bprintf("%f", (float)total
/ 1024 / 1024);
107 long total
, free
, cached
;
112 fp
= fopen("/proc/meminfo", "r");
114 warn("Failed to open file /proc/meminfo");
117 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1, fp
)) == 0) {
118 warn("swap_used: read error");
124 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
126 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
128 if ((match
= strstr(buf
, "SwapCached")) == NULL
)
130 sscanf(match
, "SwapCached: %ld kB\n", &cached
);
132 if ((match
= strstr(buf
, "SwapFree")) == NULL
)
134 sscanf(match
, "SwapFree: %ld kB\n", &free
);
136 return bprintf("%f", (float)(total
- free
- cached
) / 1024 / 1024);