Am 18. September 2013 21:56 schrieb Andreas Brus <andr...@brus.name>:
> > Ich verstehe diese Schleifen bei der Fehlerbehandlung nicht wirklich, aber > ich vermute, daß da irgendwas durcheinander gerät. > > Gruß > Andreas > Hm, die Schleife macht eigentlich nichts besonderes ... double ds1820read(char *sensorid) { FILE *fp; sprintf(fn, "/sys/bus/w1/devices/%s/w1_slave", sensorid ); if ( (fp = fopen ( fn, "r" )) == NULL ) { return(-1); } else { * fgets( crc_buffer, sizeof(crc_buffer), fp );* * if ( !strstr ( crc_buffer, crc_OK ) ) * * {* * * * syslog(LOG_INFO, "CRC check failed, SensorID: %s", sensorid);* * * * fclose ( fp );* * return(-1);* } else { fgets( temp_buffer, sizeof(temp_buffer), fp ); fgets( temp_buffer, sizeof(temp_buffer), fp ); char *t; t = strndup ( temp_buffer +29, 5 ) ; temp = atof(t)/1000; fclose ( fp ); http_post(temp, vzuuid[i][count]); } } } Wenn die Schleife kein CRC_OK lesen kann, haut sie einen Syslogeintrag raus, schliesst den FP und macht return(-1).