#include #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); }