diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2021-06-13 15:51:43 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2021-06-13 15:51:43 -0400 |
commit | 78e968dd789ca8d1cac8da3715352184bca2a188 (patch) | |
tree | eca2d39ab8e7728891b18cc490692034c236a2a7 | |
parent | 7b5d98877622f2bea24c9dd745dfcf312df31a87 (diff) | |
download | bfs-78e968dd789ca8d1cac8da3715352184bca2a188.tar.xz |
util: New xconfstr() wrapper
-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 |