aboutsummaryrefslogtreecommitdiff
path: root/c10/ex00
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-07-21 15:26:32 +0200
committerCharles <sircharlesaze@gmail.com>2019-07-21 15:26:32 +0200
commit23ad79e8b41c25bb4992d103d29a17612a52e351 (patch)
tree9de3cde07cc38e59f08885171e9f99eeab8ab71b /c10/ex00
parent8b6e91bdb56bc01a588718472546f2a88e750b48 (diff)
downloadpiscine-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.c39
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);
}