Xinqi Bao's Git
projects
/
slstatus.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
9750a3d
)
components/swap.c | move duplicated code to separate function
author
Laslo Hunhold <
[email protected]
>
Tue, 1 May 2018 18:20:58 +0000
(20:20 +0200)
committer
Aaron Marcher <
[email protected]
>
Tue, 1 May 2018 18:24:13 +0000
(20:24 +0200)
components/swap.c
diff
|
blob
|
history
diff --git
a/components/swap.c
b/components/swap.c
index
08a97de
..
fe779db
100644
(file)
--- a/
components/swap.c
+++ b/
components/swap.c
@@
-6,30
+6,40
@@
#include "../util.h"
#include "../util.h"
- const char *
-
swap_free(void
)
+ static size_t
+
pread(const char *path, char *buf, size_t bufsiz
)
{
{
- long total, free;
FILE *fp;
size_t bytes_read;
FILE *fp;
size_t bytes_read;
- char *match;
- fp = fopen("/proc/meminfo", "r");
- if (fp == NULL) {
- fprintf(stderr, "fopen '/proc/meminfo': %s\n",
+ if (!(fp = fopen(path, "r"))) {
+ fprintf(stderr, "fopen '%s': %s\n", path,
strerror(errno));
strerror(errno));
- return
NULL
;
+ return
0
;
}
}
-
- if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
- fp)) == 0) {
- fprintf(stderr, "fread '/proc/meminfo': %s\n",
+ if ((bytes_read = fread(buf, sizeof(char), bufsiz, fp)) == 0) {
+ fprintf(stderr, "fread '%s': %s\n", path,
strerror(errno));
fclose(fp);
strerror(errno));
fclose(fp);
- return
NULL
;
+ return
0
;
}
fclose(fp);
}
fclose(fp);
+ buf[bytes_read] = '\0';
+
+ return bytes_read;
+ }
+
+ const char *
+ swap_free(void)
+ {
+ long total, free;
+ char *match;
+
+ if (!pread("/proc/meminfo", buf, sizeof(buf) - 1)) {
+ return NULL;
+ }
+
if ((match = strstr(buf, "SwapTotal")) == NULL)
return NULL;
sscanf(match, "SwapTotal: %ld kB\n", &total);
if ((match = strstr(buf, "SwapTotal")) == NULL)
return NULL;
sscanf(match, "SwapTotal: %ld kB\n", &total);
@@
-45,25
+55,11
@@
swap_perc(void)
{
long total, free, cached;
swap_perc(void)
{
long total, free, cached;
- FILE *fp;
- size_t bytes_read;
char *match;
char *match;
- fp = fopen("/proc/meminfo", "r");
- if (fp == NULL) {
- fprintf(stderr, "fopen '/proc/meminfo': %s\n",
- strerror(errno));
- return NULL;
- }
-
- if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
- fp)) == 0) {
- fprintf(stderr, "fread '/proc/meminfo': %s\n",
- strerror(errno));
- fclose(fp);
+ if (!pread("/proc/meminfo", buf, sizeof(buf) - 1)) {
return NULL;
}
return NULL;
}
- fclose(fp);
if ((match = strstr(buf, "SwapTotal")) == NULL)
return NULL;
if ((match = strstr(buf, "SwapTotal")) == NULL)
return NULL;
@@
-84,24
+80,11
@@
swap_total(void)
{
long total;
swap_total(void)
{
long total;
- FILE *fp;
- size_t bytes_read;
char *match;
char *match;
- fp = fopen("/proc/meminfo", "r");
- if (fp == NULL) {
- fprintf(stderr, "fopen '/proc/meminfo': %s\n",
- strerror(errno));
- return NULL;
- }
- if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
- fp)) == 0) {
- fprintf(stderr, "fread '/proc/meminfo': %s\n",
- strerror(errno));
- fclose(fp);
+ if (!pread("/proc/meminfo", buf, sizeof(buf) - 1)) {
return NULL;
}
return NULL;
}
- fclose(fp);
if ((match = strstr(buf, "SwapTotal")) == NULL)
return NULL;
if ((match = strstr(buf, "SwapTotal")) == NULL)
return NULL;
@@
-114,24
+97,11
@@
swap_used(void)
{
long total, free, cached;
swap_used(void)
{
long total, free, cached;
- FILE *fp;
- size_t bytes_read;
char *match;
char *match;
- fp = fopen("/proc/meminfo", "r");
- if (fp == NULL) {
- fprintf(stderr, "fopen '/proc/meminfo': %s\n",
- strerror(errno));
+ if (!pread("/proc/meminfo", buf, sizeof(buf) - 1)) {
return NULL;
}
return NULL;
}
- if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
- fp)) == 0) {
- fprintf(stderr, "fread '/proc/meminfo': %s\n",
- strerror(errno));
- fclose(fp);
- return NULL;
- }
- fclose(fp);
if ((match = strstr(buf, "SwapTotal")) == NULL)
return NULL;
if ((match = strstr(buf, "SwapTotal")) == NULL)
return NULL;