diff --git a/zdev/include/path.h b/zdev/include/path.h index 0ed263ca..3d91e15e 100644 --- a/zdev/include/path.h +++ b/zdev/include/path.h @@ -65,6 +65,7 @@ char *path_get_zfcp_lun_dev(struct zfcp_lun_devid *); char *path_get_zfcp_port_dev(struct zfcp_lun_devid *); char *path_get_scsi_hctl_dev(const char *); char *path_get_bus_attr(const char *, const char *); +char *path_read_text_file(int chomp, err_t err, char *fmt, ...); exit_code_t path_for_each(const char *, exit_code_t (*callback)(const char *, const char *, diff --git a/zdev/src/path.c b/zdev/src/path.c index e040adbe..851a6509 100644 --- a/zdev/src/path.c +++ b/zdev/src/path.c @@ -18,6 +18,7 @@ #include #include "devtype.h" +#include "lib/util_libc.h" #include "misc.h" #include "path.h" #include "zfcp.h" @@ -404,3 +405,20 @@ char *path_get_bus_attr(const char *bus, const char *attr) { return path_get("/sys/bus/%s/%s", bus, attr); } + +/* Read text file from adjusted path. */ +char *path_read_text_file(int chomp, err_t err, char *fmt, ...) +{ + char *path, *path2, *text; + va_list args; + + va_start(args, fmt); + util_vasprintf(&path, fmt, args); + va_end(args); + path2 = path_get(path); + text = misc_read_text_file(path2, chomp, err); + free(path2); + free(path); + + return text; +}