]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Fix lxc-cgroup-get
authorDaniel Lezcano <daniel.lezcano@free.fr>
Wed, 19 Aug 2009 20:14:17 +0000 (22:14 +0200)
committerDaniel Lezcano <dlezcano@fr.ibm.com>
Wed, 19 Aug 2009 20:14:17 +0000 (22:14 +0200)
Make lxc_cgroup_get returns the number of bytes read and
use this value to "printf" it.

Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
src/lxc/cgroup.c
src/lxc/lxc.h
src/lxc/lxc_cgroup.c

index d055eaac5440174940894b684835407e388884ea..3711eee65c15f94e8b540b53022648efc7bbbf81 100644 (file)
@@ -198,13 +198,10 @@ int lxc_cgroup_get(const char *name, const char *subsystem,
                return -1;
        }
 
-       if (read(fd, value, len) < 0) {
+       ret = read(fd, value, len);
+       if (ret < 0)
                ERROR("read %s : %s", path, strerror(errno));
-               goto out;
-       }
-       
-       ret = 0;
-out:
+
        close(fd);
        return ret;
 }
index db5a4dcd3f79143884268fd5e8147e56c3aa0c81..f7ae8651948a73fe0c79c355ae51e21d542df564 100644 (file)
@@ -164,7 +164,7 @@ extern int lxc_cgroup_set(const char *name, const char *subsystem, const char *v
  * @subsystem : the subsystem
  * @value     : the value to be set
  * @len       : the len of the value variable
- * Returns 0 on success, < 0 otherwise
+ * Returns the number of bytes read, < 0 on error
  */
 extern int lxc_cgroup_get(const char *name, const char *subsystem, 
                          char *value, size_t len);
index 5dfd6ac05b032e577977eeef4cffacae1a9f864f..ae1c9648864db38a0d73bccd61ead40f532ca32b 100644 (file)
@@ -83,14 +83,17 @@ int main(int argc, char *argv[])
                }
        } else {
                const unsigned long len = 4096;
+               int ret;
                char buffer[len];
-               if (lxc_cgroup_get(my_args.name, subsystem, buffer, len)) {
+
+               ret = lxc_cgroup_get(my_args.name, subsystem, buffer, len);
+               if (ret < 0) {
                        ERROR("failed to retrieve value of '%s' for '%s'",
-                               subsystem, my_args.name);
+                             subsystem, my_args.name);
                        return -1;
                }
 
-               printf("%s", buffer);
+               printf("%*s", ret, buffer);
        }
 
        return 0;