From 5006061fa652c1c3a01de0ec08c2ded24e62dda8 Mon Sep 17 00:00:00 2001 From: Etienne Rey-bethbeder Date: Tue, 7 Mar 2023 19:49:15 +0100 Subject: [PATCH] Correction Pipex --- .nfs000000000a95028900000189 | Bin 0 -> 49840 bytes .nfs000000000a9502930000018a | Bin 0 -> 49840 bytes .nfs000000000a95034400000192 | 1 + Makefile | 4 +++- bonus/pipex.c | 2 +- bonus/pipex_parsing.c | 8 +++++--- bonus/pipex_utils2.c | 28 +++++++++++++++++----------- mandatory/pipex.c | 24 ++++++++++++------------ 8 files changed, 39 insertions(+), 28 deletions(-) create mode 100755 .nfs000000000a95028900000189 create mode 100755 .nfs000000000a9502930000018a create mode 100644 .nfs000000000a95034400000192 diff --git a/.nfs000000000a95028900000189 b/.nfs000000000a95028900000189 new file mode 100755 index 0000000000000000000000000000000000000000..89a04aafec6990e6d4bb3c69d3686427faf08e17 GIT binary patch literal 49840 zcmeHw4}4VBmH(SRZ!($unS?~-pE4>SD1?BhQG*Uhbcmp+K!b`y$R837Nt(>?$4aFH zT4SJswSTrtk^QZ0ZI|8p+wIR%N2k|;|kMq(+{U3I9E(={@I-qQr8Pi8W8|>6Ey<7X2jA z$o$<=mY7B}(uZ|_CN=GDL_6|%s+SS_O}f9~bGiBW6V1zn#?e$Bn3%_y0iogv&nDM3KH~u{NyP5ZIp8N4~@=YE{ zk2t)DZ^Tcy`Nz6bz3v9$h#bgkhJlY627c)<@C%25-!u%IW6Z_R%wgb-!@#c|2L5Tl zBlwqnRRfT#-`Zi|b;H1y4+Ae427bmca0~jeQTT5+11*fXtuhV>Km=bWamt4b$we~M+4e5HLPi}*4DQsI$Im9hPICG zCaa^fsokn?XlUy01|@bva$Sk|>iX7pYi(C+0^M{qHCfj#m_PUG_{@q~PHtw!#b~l> zbw|5y5(n>I{O6N9bLu|@O_zWM-Smonnsrp(+FC>n{s`&_OO9#HXS+Tk<2n(KO3F2g z3gWmE8nq%SS(;C-19L@OaI;oeH`xW}Ix<(K3vO%$>#AIEvBSDS)CG6jlb8#x zO}eyLb{gy5KD?I0Wfjoi2E>1GTJmE_m1l-{^vyxncFaE_kU6 z|8(}W1Wrrfv;p6O2(c<|B z_CI=A)QTN=Ix5M5&XJJI8UF_-_P4eZ|Jmk>@c7N3U|HKA-wj7FHkrcY*&+QA|JZ$L9@qr>P!j9ia5C0cbFyb$#0r0$;$o?9T_jce zyTL(~pOCr|`2#g4D7U_v6FvJqy)`FdeG5Lb4$931%C5JIR~#hMQ} zHS2<@C4lH|`)b}2#z4f)*l4FK%jsb}>AdLBsY(?C@HllF3!-HCv*GcUmQN(Mtp+lx zN%d}cw>NpRcgb5l8%{z{)Vsb7CujUB`!^QE6F^TBW!+o* zNICTb6d;;Z-@3`EUpV=xsUIQVv*BG39R)OnQJH$t!I+iWuk#sm1Uiw_7o3_2>Dfcg zgw$4D6YIk~EO{4#{Z6bert`CqUsRR)3~_p%i!6V(dAlC(3O(KvYP>SoEpvpgg(vzx z80oul>WuxdzV*>qZ-1H=N-OCsGeV zuusXPZ~3pm!SMKbmeHq9E#H1DJFdEvFV=8!AFX6+@>nVm)>Y4j6IOT&m*Rn%cS&V{ z!5CKgFX1AX1>rZ!(FABXy5F&~#Ta~w-XFJy2*B|L$} za=fql-WmIQUzqXT)HV!l;3Zix7~gBZ=Bj%am=-1sD%1%Ta%^FGydOFKsPrY6G&H@* z6S3YUDd>V7-a6g%)VD4e+c(mPk|sa(DXaxDzJ*9Y4}`Z(L{5u+yuoEuC{?ex5lPL$ zUAWIdbFQJu7@Pd^jq_?J@D#6*4B@@H6)$9(JEPOOvvSfd_WclH&HIsU?IFlrmLzG(jK4mg}&{yG% zQHj{L4ZBnMn8V(hcLx~05WvaIY5d4@oGn^Et*_C0F+*|X@12rjB8NEn__xXe2 zeG7jH!@qf|3%;>BnATkC*8sz{uz8|nseva&*|5Vu6pT2J}K zX3Eb4EY<#w*ix`pladwpFf;)ZlZy2|BMnjufH81>x_zB#&%kV|LfUUQA=W2#@mWqc zWCsJO##B?Uwd_C-kd1sEW;pn5hOhbRaXe)fr0*PID1duxtBLysUm zIq(GPh5w_ndmM;0)EtjZIS}hP;8B}KnQGAwqtFj}G&8XSH7Ai+10TjMb7GFm1Z*}7 zt8d})-f#9iw<#7IL`ui59dSB{!!P5(2H5|IPJUH+aW`#9a@u?U5K{C{@ zhI557NkLgZwCHxJ&e`LwyF(_d#Y|Mt^gW=7bjkKu#n)
    Py)~>X)jw@+Fa+u4sES&WN|4PY& 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 KsIJT^TK^w8(Yy=* literal 0 HcmV?d00001 diff --git a/.nfs000000000a9502930000018a b/.nfs000000000a9502930000018a new file mode 100755 index 0000000000000000000000000000000000000000..e8b43e945070f37f43c2600a3cbf1d96a6ede48e GIT binary patch literal 49840 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 IW)-df4|8X`_y7O^ literal 0 HcmV?d00001 diff --git a/.nfs000000000a95034400000192 b/.nfs000000000a95034400000192 new file mode 100644 index 0000000..7898192 --- /dev/null +++ b/.nfs000000000a95034400000192 @@ -0,0 +1 @@ +a diff --git a/Makefile b/Makefile index 1f9af05..ac373bd 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,9 @@ fclean: re: fclean all -.PHONY: all clean fclean re coffee +rebonus: fclean bonus + +.PHONY: all clean fclean re rebonus coffee coffee: @clear diff --git a/bonus/pipex.c b/bonus/pipex.c index 67b2ee8..ec58f67 100644 --- a/bonus/pipex.c +++ b/bonus/pipex.c @@ -6,7 +6,7 @@ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/01/18 18:04:58 by erey-bet #+# #+# */ -/* Updated: 2023/03/07 16:22:34 by erey-bet ### ########.fr */ +/* Updated: 2023/03/07 18:16:17 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/bonus/pipex_parsing.c b/bonus/pipex_parsing.c index d1f1bea..c98d020 100644 --- a/bonus/pipex_parsing.c +++ b/bonus/pipex_parsing.c @@ -6,7 +6,7 @@ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/01/19 17:03:01 by erey-bet #+# #+# */ -/* Updated: 2023/03/07 14:55:20 by erey-bet ### ########.fr */ +/* Updated: 2023/03/07 19:26:23 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ @@ -57,9 +57,11 @@ char *cmd_exist(char **env, char **cmd, int y, char **s) { char *path; size_t i; + size_t len; i = 4; - while (i < ft_strlen(*env)) + len = ft_strlen(*env); + while (i < len) { test_acces(s, cmd, &path, &y); if (path) @@ -67,7 +69,7 @@ char *cmd_exist(char **env, char **cmd, int y, char **s) *s = ft_calloc(ft_strlen(*env) + 1, 1); if (*s == NULL) return (NULL); - while ((*env)[++i] != ':') + while ((*env)[++i] != ':' && i < len) (*s)[y++] = (*env)[i]; } free(*s); diff --git a/bonus/pipex_utils2.c b/bonus/pipex_utils2.c index d175b9d..29582b6 100644 --- a/bonus/pipex_utils2.c +++ b/bonus/pipex_utils2.c @@ -6,7 +6,7 @@ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/14 15:46:08 by erey-bet #+# #+# */ -/* Updated: 2023/03/07 16:17:51 by erey-bet ### ########.fr */ +/* Updated: 2023/03/07 18:56:52 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,6 +35,16 @@ static int open_close_pipe(t_data *data, int boolean, int file) return (0); } +static void choice_command(int argc, t_data data, int i) +{ + if (i == 0) + cmd(data, i, 0); + else if (i + 1 < argc - 3) + cmd(data, i, 1); + else + cmd(data, i, 2); +} + int pipex_loop(int argc, int **fk, t_data data) { int i; @@ -44,17 +54,13 @@ int pipex_loop(int argc, int **fk, t_data data) { if (open_close_pipe(&data, 0, i % 2)) return (1); - (*fk)[i] = fork(); - if ((*fk)[i] < 0) - return (1); - if ((*fk)[i] == 0) + if ((i > 0 || (i == 0 && data.fd1 > 0)) && data.cmds[i]) { - if (i == 0 && data.cmds[0]) - cmd(data, i, 0); - else if (i + 1 >= argc - 3) - cmd(data, i, 2); - else - cmd(data, i, 1); + (*fk)[i] = fork(); + if ((*fk)[i] < 0) + return (1); + if ((*fk)[i] == 0) + choice_command(argc, data, i); } if (i > 0) if (open_close_pipe(&data, 1, (i + 1) % 2)) diff --git a/mandatory/pipex.c b/mandatory/pipex.c index 54fce8e..e8eb6df 100644 --- a/mandatory/pipex.c +++ b/mandatory/pipex.c @@ -6,7 +6,7 @@ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/01/18 18:04:58 by erey-bet #+# #+# */ -/* Updated: 2023/03/07 09:56:49 by erey-bet ### ########.fr */ +/* Updated: 2023/03/07 17:06:38 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ @@ -66,29 +66,29 @@ void second_cmd(int fd[2], t_data data) int pipex(t_data data) { int fd[2]; - int cmd1; - int cmd2; + int f1; + int f2; if (pipe(fd) < -1) return (1); - if (data.cmd1) + if (data.fd1 > -1 && data.cmd1) { - cmd1 = fork(); - if (cmd1 < 0) + f1 = fork(); + if (f1 < 0) return (1); - if (cmd1 == 0) + if (f1 == 0) first_cmd(fd, data); } - cmd2 = fork(); - if (cmd2 < 0) + f2 = fork(); + if (f2 < 0) return (1); - if (cmd2 == 0) + if (f2 == 0) second_cmd(fd, data); close(fd[0]); close(fd[1]); if (data.fd1 > 0 && data.cmd1) - waitpid(cmd1, NULL, 0); - waitpid(cmd2, NULL, 0); + waitpid(f1, NULL, 0); + waitpid(f2, NULL, 0); return (0); }