diff options
author | Bastien Nocera <hadess@hadess.net> | 2013-10-18 16:10:46 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2013-10-18 16:16:54 +0200 |
commit | 4b4caf187f590efc41a10646e0f35d6a70098103 (patch) | |
tree | e70e7ed8a98f4cbf9409c7a4e15d57ae550d78b2 | |
parent | 456a9a4ea409cb8630a62a1ecf224e2ed65a817e (diff) | |
download | upower-4b4caf187f590efc41a10646e0f35d6a70098103.tar.gz |
linux: Add a way to check when sysfs_get_double fails
-rw-r--r-- | src/linux/sysfs-utils.c | 19 | ||||
-rw-r--r-- | src/linux/sysfs-utils.h | 1 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/linux/sysfs-utils.c b/src/linux/sysfs-utils.c index e32715c..8cdff8d 100644 --- a/src/linux/sysfs-utils.c +++ b/src/linux/sysfs-utils.c @@ -44,6 +44,25 @@ #include "sysfs-utils.h" double +sysfs_get_double_with_error (const char *dir, const char *attribute) +{ + double result; + char *contents; + char *filename; + + filename = g_build_filename (dir, attribute, NULL); + if (g_file_get_contents (filename, &contents, NULL, NULL)) { + result = atof (contents); + g_free (contents); + } else { + result = -1.0; + } + g_free (filename); + + return result; +} + +double sysfs_get_double (const char *dir, const char *attribute) { double result; diff --git a/src/linux/sysfs-utils.h b/src/linux/sysfs-utils.h index 93416b2..df85137 100644 --- a/src/linux/sysfs-utils.h +++ b/src/linux/sysfs-utils.h @@ -28,5 +28,6 @@ char *sysfs_get_string (const char *dir, const char *attribute); int sysfs_get_int (const char *dir, const char *attribute); gboolean sysfs_get_bool (const char *dir, const char *attribute); gboolean sysfs_file_exists (const char *dir, const char *attribute); +double sysfs_get_double_with_error (const char *dir, const char *attribute); #endif /* __SYSFS_UTILS_H__ */ |