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