diff options
-rw-r--r-- | util.c | 19 | ||||
-rw-r--r-- | util.h | 10 |
2 files changed, 29 insertions, 0 deletions
@@ -414,3 +414,22 @@ size_t xwrite(int fd, const void *buf, size_t nbytes) { return count; } + +char *xconfstr(int name) { + size_t len = confstr(name, NULL, 0); + if (len == 0) { + return NULL; + } + + char *str = malloc(len); + if (!str) { + return NULL; + } + + if (confstr(name, str, len) != len) { + free(str); + return NULL; + } + + return str; +} @@ -264,4 +264,14 @@ size_t xread(int fd, void *buf, size_t nbytes); */ size_t xwrite(int fd, const void *buf, size_t nbytes); +/** + * Wrapper for confstr() that allocates with malloc(). + * + * @param name + * The ID of the confstr to look up. + * @return + * The value of the confstr, or NULL on failure. + */ +char *xconfstr(int name); + #endif // BFS_UTIL_H |