From fbfe3e315f35f87faba461a71b198971b6f29fb5 Mon Sep 17 00:00:00 2001 From: Henry Bruce Date: Wed, 2 Dec 2015 10:36:03 -0800 Subject: [PATCH] iio: mraa_iio_write_string now using open insteam of fopen Signed-off-by: Henry Bruce --- src/iio/iio.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/src/iio/iio.c b/src/iio/iio.c index 7f4ed5c..d7f1292 100644 --- a/src/iio/iio.c +++ b/src/iio/iio.c @@ -247,17 +247,11 @@ mraa_iio_read_string(mraa_iio_context dev, const char* filename, char* data) } mraa_result_t -mraa_iio_write_float(mraa_iio_context dev, const char* filename, const float data) +mraa_iio_write_float(mraa_iio_context dev, const char* attr_name, const float data) { char buf[MAX_SIZE]; - snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/%s", dev->num, filename); - FILE* fp = fopen(buf, "w"); - if (fp != NULL) { - fprintf(fp, "%f", data); - fclose(fp); - return MRAA_SUCCESS; - } - return MRAA_ERROR_UNSPECIFIED; + snprintf(buf, MAX_SIZE, "%f", data); + return mraa_iio_write_string(dev, attr_name, buf); } mraa_result_t @@ -275,17 +269,20 @@ mraa_iio_write_integer(mraa_iio_context dev, const char* filename, const int dat } mraa_result_t -mraa_iio_write_string(mraa_iio_context dev, const char* filename, const char* data) +mraa_iio_write_string(mraa_iio_context dev, const char* attr_name, const char* data) { char buf[MAX_SIZE]; - snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/%s", dev->num, filename); - FILE* fp = fopen(buf, "w"); - if (fp != NULL) { - fprintf(fp, "%s", data); - fclose(fp); - return MRAA_SUCCESS; + mraa_result_t result = MRAA_ERROR_UNSPECIFIED; + snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/%s", dev->num, attr_name); + int fh = open(buf, O_RDWR); + if (fh != -1) { + size_t len = strlen(data); + ssize_t status = write(fh, data, len); + printf("mraa_iio_write_string status %d\n", status); + if (status == len) + result = MRAA_SUCCESS; } - return MRAA_ERROR_UNSPECIFIED; + return result; } static mraa_result_t -- 2.7.4