diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-07-21 15:26:32 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-07-21 15:26:32 +0200 |
| commit | 23ad79e8b41c25bb4992d103d29a17612a52e351 (patch) | |
| tree | 9de3cde07cc38e59f08885171e9f99eeab8ab71b /c10/ex00 | |
| parent | 8b6e91bdb56bc01a588718472546f2a88e750b48 (diff) | |
| download | piscine-23ad79e8b41c25bb4992d103d29a17612a52e351.tar.gz piscine-23ad79e8b41c25bb4992d103d29a17612a52e351.tar.bz2 piscine-23ad79e8b41c25bb4992d103d29a17612a52e351.zip | |
c10 done, c11 on going, rush02 probably finished, bsq start
Diffstat (limited to 'c10/ex00')
| -rw-r--r-- | c10/ex00/main.c | 39 |
1 files changed, 12 insertions, 27 deletions
diff --git a/c10/ex00/main.c b/c10/ex00/main.c index 0cc4470..67fefe6 100644 --- a/c10/ex00/main.c +++ b/c10/ex00/main.c @@ -6,53 +6,38 @@ /* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/07/11 18:06:43 by cacharle #+# #+# */ -/* Updated: 2019/07/19 06:33:07 by cacharle ### ########.fr */ +/* Updated: 2019/07/20 17:26:47 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include <unistd.h> #include <fcntl.h> -#include <stdio.h> -#define BUFFER_SIZE 1024 - -int read_write_file(int fildes) -{ - char buf[BUFFER_SIZE]; - int read_size; - - while ((read_size = read(fildes, buf, BUFFER_SIZE)) != 0) - { - if (read_size < 0) - return (-1); - write(STDOUT_FILENO, buf, read_size); - } - return (0); -} +#define BUF_SIZE 64 int main(int argc, char **argv) { int fildes; + int read_size; + char buf[BUF_SIZE + 1]; - if (argc == 1) + if (argc < 2) { - write(STDERR_FILENO, "File name missing.\n", 20); + write(STDERR_FILENO, "File name missing.\n", 19); return (1); } - else if (argc > 2) + if (argc > 2) { - write(STDERR_FILENO, "Too many arguments.\n", 21); + write(STDERR_FILENO, "Too many arguments.\n", 20); return (1); } - if ((fildes = open(argv[1], O_RDONLY)) < 0) + if ((fildes = open(argv[1], O_RDONLY)) == -1) { write(STDERR_FILENO, "Cannot read file.\n", 18); return (1); } - if ((read_write_file(fildes)) < 0) - { - write(STDERR_FILENO, "Cannot read file.\n", 18); + while ((read_size = read(fildes, buf, BUF_SIZE))) + write(STDOUT_FILENO, buf, read_size); + if (close(fildes)) return (1); - } - close(fildes); return (0); } |
