+ if ((match = strstr(buf, "SwapCached")) == NULL) {
+ return smprintf("%s", UNKNOWN_STR);
+ }
+ sscanf(match, "SwapCached: %ld kB\n", &cached);
+
+ if ((match = strstr(buf, "SwapFree")) == NULL) {
+ return smprintf("%s", UNKNOWN_STR);
+ }
+ sscanf(match, "SwapFree: %ld kB\n", &free);
+
+ return smprintf("%f", (float)(total - free - cached) / 1024 / 1024);
+}
+
+static char *
+temp(const char *file)
+{
+ int temp;
+ FILE *fp;
+
+ fp = fopen(file, "r");
+ if (fp == NULL) {
+ warn("Failed to open file %s", file);
+ return smprintf("%s", UNKNOWN_STR);
+ }
+ fscanf(fp, "%d", &temp);
+ fclose(fp);
+
+ return smprintf("%d", temp / 1000);