```c #include #include "io.h" int8_t io_open(t_io *io, const char *input_path, const char *output_path) { io->in = (NULL != input_path) ? fopen(input_path, "r") : stdin; if (NULL == io->in) { perror(input_path); return (1); } io->out = (NULL != output_path) ? fopen(output_path, "w") : stdout; if (NULL == io->out) { perror(output_path); if (io->in != stdin) fclose(io->in); return (1); } return (0); } void io_close(t_io *io) { if (NULL != io->in && io->in != stdin) fclose(io->in); if (NULL != io->out && io->out != stdout) fclose(io->out); } ```