From 47b6a2062150bff5199afe661518ffb86b65e41f Mon Sep 17 00:00:00 2001 From: Paul Meyer Date: Thu, 25 Jun 2026 13:27:21 +0200 Subject: [PATCH] fileio: add write_string_filef_at() Signed-off-by: Paul Meyer --- src/basic/fileio.c | 20 ++++++++++++++++++++ src/basic/fileio.h | 1 + 2 files changed, 21 insertions(+) diff --git a/src/basic/fileio.c b/src/basic/fileio.c index 1f2143e885..d7b4a02cbb 100644 --- a/src/basic/fileio.c +++ b/src/basic/fileio.c @@ -400,6 +400,26 @@ int write_string_filef( return write_string_file(fn, p, flags); } +int write_string_filef_at( + int dir_fd, + const char *fn, + WriteStringFileFlags flags, + const char *format, ...) { + + _cleanup_free_ char *p = NULL; + va_list ap; + int r; + + va_start(ap, format); + r = vasprintf(&p, format, ap); + va_end(ap); + + if (r < 0) + return -ENOMEM; + + return write_string_file_at(dir_fd, fn, p, flags); +} + int write_base64_file_at( int dir_fd, const char *fn, diff --git a/src/basic/fileio.h b/src/basic/fileio.h index 5e6e3de1fe..d10b04c907 100644 --- a/src/basic/fileio.h +++ b/src/basic/fileio.h @@ -56,6 +56,7 @@ static inline int write_string_file(const char *fn, const char *line, WriteStrin return write_string_file_at(AT_FDCWD, fn, line, flags); } int write_string_filef(const char *fn, WriteStringFileFlags flags, const char *format, ...) _printf_(3, 4); +int write_string_filef_at(int dir_fd, const char *fn, WriteStringFileFlags flags, const char *format, ...) _printf_(4, 5); int write_base64_file_at(int dir_fd, const char *fn, const struct iovec *data, WriteStringFileFlags flags);