Xinqi Bao's Git
1 /* See LICENSE file for copyright and license details. */
16 fp
= fopen("/proc/meminfo", "r");
18 warn("Failed to open file /proc/meminfo");
22 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1, fp
)) == 0) {
23 warn("swap_free: read error");
29 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
31 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
33 if ((match
= strstr(buf
, "SwapFree")) == NULL
)
35 sscanf(match
, "SwapFree: %ld kB\n", &free
);
37 return bprintf("%f", (float)free
/ 1024 / 1024);
43 long total
, free
, cached
;
48 fp
= fopen("/proc/meminfo", "r");
50 warn("Failed to open file /proc/meminfo");
54 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1, fp
)) == 0) {
55 warn("swap_perc: read error");
61 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
63 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
65 if ((match
= strstr(buf
, "SwapCached")) == NULL
)
67 sscanf(match
, "SwapCached: %ld kB\n", &cached
);
69 if ((match
= strstr(buf
, "SwapFree")) == NULL
)
71 sscanf(match
, "SwapFree: %ld kB\n", &free
);
73 return bprintf("%d", 100 * (total
- free
- cached
) / total
);
84 fp
= fopen("/proc/meminfo", "r");
86 warn("Failed to open file /proc/meminfo");
89 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1, fp
)) == 0) {
90 warn("swap_total: read error");
96 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
98 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
100 return bprintf("%f", (float)total
/ 1024 / 1024);
106 long total
, free
, cached
;
111 fp
= fopen("/proc/meminfo", "r");
113 warn("Failed to open file /proc/meminfo");
116 if ((bytes_read
= fread(buf
, sizeof(char), sizeof(buf
) - 1, fp
)) == 0) {
117 warn("swap_used: read error");
123 if ((match
= strstr(buf
, "SwapTotal")) == NULL
)
125 sscanf(match
, "SwapTotal: %ld kB\n", &total
);
127 if ((match
= strstr(buf
, "SwapCached")) == NULL
)
129 sscanf(match
, "SwapCached: %ld kB\n", &cached
);
131 if ((match
= strstr(buf
, "SwapFree")) == NULL
)
133 sscanf(match
, "SwapFree: %ld kB\n", &free
);
135 return bprintf("%f", (float)(total
- free
- cached
) / 1024 / 1024);