From 5e9d03d507aad324a803eb8795e0eed6fb671761 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Mon, 10 Jul 2023 15:24:52 +0800
Subject: [PATCH] Merge branch 'master' of http://master.iot-yun.club:8088/r/raspberrypi

---
 apue/1.File_IO/ds18b20.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/apue/1.File_IO/ds18b20.c b/apue/1.File_IO/ds18b20.c
index 1ad5192..0ff2a34 100644
--- a/apue/1.File_IO/ds18b20.c
+++ b/apue/1.File_IO/ds18b20.c
@@ -45,14 +45,14 @@
 
 int ds18b20_get_temperature(float *temp)
 {
-    char            w1_path[50] = "/sys/bus/w1/devices/";
+    const char     *w1_path = "/sys/bus/w1/devices/";
+    char            ds_path[50];
     char            chip[20];
     char            buf[128];
     DIR            *dirp;
     struct dirent  *direntp;
     int             fd =-1;
     char           *ptr;
-    float           value;
     int             found = 0;
     int             rv = 0;
 
@@ -89,19 +89,18 @@
     }
 
     /* get DS18B20 sample file full path: /sys/bus/w1/devices/28-xxxx/w1_slave */
-    strncat(w1_path, chip, sizeof(w1_path)-strlen(w1_path));
-    strncat(w1_path, "/w1_slave", sizeof(w1_path)-strlen(w1_path));
+    snprintf(ds_path, sizeof(ds_path), "%s/%s/w1_slave", w1_path, chip);
 
     /* open file /sys/bus/w1/devices/28-xxxx/w1_slave to get temperature */
-    if( (fd=open(w1_path, O_RDONLY)) < 0 )
+    if( (fd=open(ds_path, O_RDONLY)) < 0 )
     {
-        printf("open %s error: %s\n", w1_path, strerror(errno));
+        printf("open %s error: %s\n", ds_path, strerror(errno));
         return -4;
     }
 
     if(read(fd, buf, sizeof(buf)) < 0)
     {
-        printf("read %s error: %s\n", w1_path, strerror(errno));
+        printf("read %s error: %s\n", ds_path, strerror(errno));
         rv = -5;
         goto cleanup;
     }

--
Gitblit v1.9.1