From 8b6e91bdb56bc01a588718472546f2a88e750b48 Mon Sep 17 00:00:00 2001 From: Charles Date: Fri, 19 Jul 2019 07:04:04 +0200 Subject: c10 done?, c11 moulinetted (ex04, ex06 need correction) --- c10/ex00/main.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) (limited to 'c10/ex00') diff --git a/c10/ex00/main.c b/c10/ex00/main.c index afde099..0cc4470 100644 --- a/c10/ex00/main.c +++ b/c10/ex00/main.c @@ -6,35 +6,27 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/07/11 18:06:43 by cacharle #+# #+# */ -/* Updated: 2019/07/17 08:44:58 by cacharle ### ########.fr */ +/* Updated: 2019/07/19 06:33:07 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include #include #include -#define BUFFER_SIZE 1 +#define BUFFER_SIZE 1024 -void read_write_file(int fildes) +int read_write_file(int fildes) { - int i; - int writing; char buf[BUFFER_SIZE]; + int read_size; - writing = 1; - while (writing) + while ((read_size = read(fildes, buf, BUFFER_SIZE)) != 0) { - if (read(fildes, buf, BUFFER_SIZE) == 0) - break ; - i = 0; - while (buf[i]) - { - write(STDOUT_FILENO, &buf[i], 1); - if (buf[i] == -1) - writing = 0; - i++; - } + if (read_size < 0) + return (-1); + write(STDOUT_FILENO, buf, read_size); } + return (0); } int main(int argc, char **argv) @@ -56,7 +48,11 @@ int main(int argc, char **argv) write(STDERR_FILENO, "Cannot read file.\n", 18); return (1); } - read_write_file(fildes); + if ((read_write_file(fildes)) < 0) + { + write(STDERR_FILENO, "Cannot read file.\n", 18); + return (1); + } close(fildes); return (0); } -- cgit