11/* ************************************************************************** */
22/* */
33/* ::: :::::::: */
4- /* stuff .c :+: :+: :+: */
4+ /* child .c :+: :+: :+: */
55/* +:+ +:+ +:+ */
66/* By: miggonza <miggonza@student.42.fr> +#+ +:+ +#+ */
77/* +#+#+#+#+#+ +#+ */
88/* Created: 2023/09/26 10:37:32 by miggonza #+# #+# */
9- /* Updated: 2023/11/22 19:28:30 by miggonza ### ########.fr */
9+ /* Updated: 2023/11/23 12:54:19 by miggonza ### ########.fr */
1010/* */
1111/* ************************************************************************** */
1212
1313#include "pipex.h"
1414
15- void ft_read_file (char * * argv , char * * env , int * fd )
15+ void ft_child_input (char * * argv , char * * env , int * fd )
1616{
1717 pid_t f ;
1818 int file ;
@@ -28,11 +28,11 @@ void ft_read_file(char **argv, char **env, int *fd)
2828 close (fd [0 ]);
2929 dup2 (file , 0 );
3030 dup2 (fd [1 ], 1 );
31- ft_split_cmd (argv [2 ], env );
31+ ft_execve (argv [2 ], env );
3232 }
3333}
3434
35- void ft_write_file (char * * argv , char * * env , int * fd )
35+ void ft_child_output (char * * argv , char * * env , int * fd , int argc )
3636{
3737 pid_t f ;
3838 int file ;
@@ -42,52 +42,54 @@ void ft_write_file(char **argv, char **env, int *fd)
4242 ft_perror ("fork" );
4343 if (f == 0 )
4444 {
45- file = open (argv [4 ], O_WRONLY | O_CREAT | O_TRUNC );
45+ file = open (argv [argc + 1 ], O_WRONLY | O_CREAT | O_TRUNC );
4646 if (file < 0 )
47- ft_perror (argv [4 ]);
47+ ft_perror (argv [argc + 1 ]);
4848 close (fd [1 ]);
4949 dup2 (file , 1 );
5050 dup2 (fd [0 ], 0 );
51- ft_split_cmd (argv [3 ], env );
51+ ft_execve (argv [argc ], env );
5252 }
5353}
5454
55- void ft_write_file_bonus (char * * argv , char * * env , int * fd , int argc )
55+ void ft_child_middle (char * argv , char * * env , int * fd )
5656{
5757 pid_t f ;
58- int file ;
58+ int save ;
5959
60+ save = fd [0 ];
61+ close (fd [1 ]);
62+ pipe (fd );
6063 f = fork ();
6164 if (f < 0 )
6265 ft_perror ("fork" );
6366 if (f == 0 )
6467 {
65- file = open (argv [argc + 1 ], O_WRONLY | O_CREAT | O_TRUNC );
66- if (file < 0 )
67- ft_perror (argv [argc + 1 ]);
68- close (fd [1 ]);
69- dup2 (file , 1 );
70- dup2 (fd [0 ], 0 );
71- ft_split_cmd (argv [argc ], env );
68+ close (fd [0 ]);
69+ dup2 (save , 0 );
70+ dup2 (fd [1 ], 1 );
71+ ft_execve (argv , env );
7272 }
7373}
7474
75- void ft_child_middle (char * argv , char * * env , int * fd )
75+ /*
76+ void ft_child_output(char **argv, char **env, int *fd)
7677{
7778 pid_t f;
78- int save ;
79+ int file ;
7980
80- save = fd [0 ];
81- close (fd [1 ]);
82- pipe (fd );
8381 f = fork();
8482 if (f < 0)
8583 ft_perror("fork");
8684 if (f == 0)
8785 {
88- close (fd [0 ]);
89- dup2 (save , 0 );
90- dup2 (fd [1 ], 1 );
91- ft_split_cmd (argv , env );
86+ file = open(argv[4], O_WRONLY | O_CREAT | O_TRUNC);
87+ if (file < 0)
88+ ft_perror(argv[4]);
89+ close(fd[1]);
90+ dup2(file, 1);
91+ dup2(fd[0], 0);
92+ ft_execve(argv[3], env);
9293 }
9394}
95+ */
0 commit comments