diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2025-04-13 09:36:26 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-04-13 21:10:24 -0400 |
commit | e99da4dddbbd17d57aecc0d287a92c378a623244 (patch) | |
tree | c34ae1c73bfdccc5c6d9be1b6c9d839337993b59 /c_src/tools-util.h | |
parent | 7b35cb1e4a4b5fa01f9be108192af0b3036229c3 (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.h | 6 |
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 *); |