On Thu, Jul 07, 2016 at 09:49:36AM +0800, Song Shan Gong wrote:
SNIP
+ char *line = NULL;
+ size_t n;
+ char *sep;
+
+ module_name[len - 1] = '\0';
+ module_name += 1;
+ snprintf(path, PATH_MAX, "%s/sys/module/%s/sections/.text",
+ machine->root_dir, module_name);
+ file = fopen(path, "r");
+ if (file == NULL)
+ return -1;
+
+ len = getline(&line, &n, file);
+ if (len < 0) {
+ err = -1;
+ goto out;
+ }
+ line[--len] = '\0'; /* \n */
+ sep = strrchr(line, 'x');
+ if (sep == NULL) {
+ err = -1;
+ goto out;
+ }
+ hex2u64(sep + 1, &text_start);
we have following functions in tools/lib/api/fs to read
single number from file, which I assume you do above:
int sysfs__read_int(const char *entry, int *value);
int sysfs__read_ull(const char *entry, unsigned long long *value);
please check if you could use some of them,
we could add some more generic one if needed
thanks,
jirka