summaryrefslogtreecommitdiff
path: root/c_src/tools-util.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-04-13 09:36:26 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-04-13 21:10:24 -0400
commite99da4dddbbd17d57aecc0d287a92c378a623244 (patch)
treec34ae1c73bfdccc5c6d9be1b6c9d839337993b59 /c_src/tools-util.h
parent7b35cb1e4a4b5fa01f9be108192af0b3036229c3 (diff)
xclose()
Add a helper to check for close errrors - especially bad file descriptors, that can be a fun source of heisenbugs. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'c_src/tools-util.h')
-rw-r--r--c_src/tools-util.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/c_src/tools-util.h b/c_src/tools-util.h
index ca84dd01..d3d6b14b 100644
--- a/c_src/tools-util.h
+++ b/c_src/tools-util.h
@@ -82,6 +82,12 @@ static inline void *xrealloc(void *p, size_t size)
_ret; \
})
+#define xclose(_fd) \
+do { \
+ if (close(_fd)) \
+ die("error closing fd: %m at %s:%u", __FILE__, __LINE__);\
+} while (0)
+
void write_file_str(int, const char *, const char *);
char *read_file_str(int, const char *);
u64 read_file_u64(int, const char *);