iHandle errors in fscanf and fread. - energy - measure energy usage Err bitreich.org 70 hgit clone git://bitreich.org/energy git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/energy URL:git://bitreich.org/energy git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/energy bitreich.org 70 1Log /scm/energy/log.gph bitreich.org 70 1Files /scm/energy/files.gph bitreich.org 70 1Refs /scm/energy/refs.gph bitreich.org 70 1Tags /scm/energy/tag bitreich.org 70 1README /scm/energy/file/README.md.gph bitreich.org 70 1LICENSE /scm/energy/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 3b9da8cb1c2fcacd4570f25d02194124e526caa2 /scm/energy/commit/3b9da8cb1c2fcacd4570f25d02194124e526caa2.gph bitreich.org 70 1parent 94c96ddd16d2012cdaaef649903e8fcc663a9296 /scm/energy/commit/94c96ddd16d2012cdaaef649903e8fcc663a9296.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Thu, 24 Aug 2023 15:24:43 +0200 Err bitreich.org 70 i Err bitreich.org 70 iHandle errors in fscanf and fread. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M energy.c | 10 ++++++++-- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 8 insertions(+), 2 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/energy.c b/energy.c /scm/energy/file/energy.c.gph bitreich.org 70 i@@ -55,7 +55,10 @@ long long_from_file(const char *fname) { Err bitreich.org 70 i return -1; Err bitreich.org 70 i } else { Err bitreich.org 70 i long x; Err bitreich.org 70 i- fscanf(f, "%ld", &x); Err bitreich.org 70 i+ if (fscanf(f, "%ld", &x) < 0) { Err bitreich.org 70 i+ fprintf(stderr, "%s: %s\n", fname, strerror(errno)); Err bitreich.org 70 i+ return -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i fclose(f); Err bitreich.org 70 i return x; Err bitreich.org 70 i } Err bitreich.org 70 i@@ -118,7 +121,10 @@ void sensor_battery(void) { Err bitreich.org 70 i } Err bitreich.org 70 i } else { Err bitreich.org 70 i char buf[128]; Err bitreich.org 70 i- fread(buf, 1, sizeof(buf), f); Err bitreich.org 70 i+ if (fread(buf, 1, sizeof(buf), f) < 1) { Err bitreich.org 70 i+ fprintf(stderr, "%s: %s\n", battery_status, strerror(errno)); Err bitreich.org 70 i+ return; Err bitreich.org 70 i+ } Err bitreich.org 70 i const char discharging[] = "Discharging"; Err bitreich.org 70 i // Measurement of battery discharge is only meaningful if the Err bitreich.org 70 i // battery is actually discharging. Err bitreich.org 70 .