fileio: introduce read_one_line_file_at()

This commit is contained in:
Yu Watanabe
2023-04-09 07:08:38 +02:00
committed by Daan De Meyer
parent 728d7382a0
commit 46b457e54b
2 changed files with 10 additions and 6 deletions
+6 -5
View File
@@ -354,18 +354,19 @@ int write_string_filef(
return write_string_file(fn, p, flags);
}
int read_one_line_file(const char *fn, char **line) {
int read_one_line_file_at(int dir_fd, const char *filename, char **ret) {
_cleanup_fclose_ FILE *f = NULL;
int r;
assert(fn);
assert(line);
assert(dir_fd >= 0 || dir_fd == AT_FDCWD);
assert(filename);
assert(ret);
r = fopen_unlocked(fn, "re", &f);
r = fopen_unlocked_at(dir_fd, filename, "re", 0, &f);
if (r < 0)
return r;
return read_line(f, LONG_LINE_MAX, line);
return read_line(f, LONG_LINE_MAX, ret);
}
int verify_file_at(int dir_fd, const char *fn, const char *blob, bool accept_extra_nl) {
+4 -1
View File
@@ -71,7 +71,10 @@ static inline int write_string_file(const char *fn, const char *line, WriteStrin
int write_string_filef(const char *fn, WriteStringFileFlags flags, const char *format, ...) _printf_(3, 4);
int read_one_line_file(const char *filename, char **line);
int read_one_line_file_at(int dir_fd, const char *filename, char **ret);
static inline int read_one_line_file(const char *filename, char **ret) {
return read_one_line_file_at(AT_FDCWD, filename, ret);
}
int read_full_file_full(int dir_fd, const char *filename, uint64_t offset, size_t size, ReadFullFileFlags flags, const char *bind_name, char **ret_contents, size_t *ret_size);
static inline int read_full_file_at(int dir_fd, const char *filename, char **ret_contents, size_t *ret_size) {
return read_full_file_full(dir_fd, filename, UINT64_MAX, SIZE_MAX, 0, NULL, ret_contents, ret_size);