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;
}
* @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);
}
} 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;