diff options
Diffstat (limited to 'src/recursive_reader.c')
| -rw-r--r-- | src/recursive_reader.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/recursive_reader.c b/src/recursive_reader.c new file mode 100644 index 0000000..0a32131 --- /dev/null +++ b/src/recursive_reader.c @@ -0,0 +1,21 @@ +#include <assert.h> + +#include "lib.h" + +struct recursive_reader recursive_reader_init() { + FILE *pipe = popen("find \"$PWD\" -print", "r"); + assert(pipe != NULL); + return (struct recursive_reader) { pipe, NULL, 0 }; +} + +int recursive_reader_read(struct recursive_reader *reader) { + int n = getline(&reader->line, &reader->capacity, reader->pfile); + reader->line[n - 1] = 0; + return n; +} + +void recursive_reader_deinit(struct recursive_reader reader) { + free(reader.line); + int status = pclose(reader.pfile); + assert(status != -1); +} |
