From c197bbbdb4311f902aeac7e94fe7b790f3621eaf Mon Sep 17 00:00:00 2001 From: guamss Date: Wed, 28 Jun 2023 10:32:51 +0200 Subject: [PATCH] =?UTF-8?q?(feat):=20execution=20de=20commande=20et=20redi?= =?UTF-8?q?rection=20de=20l'entr=C3=A9e=20standard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exec/a.out | Bin 15416 -> 0 bytes exec/exec.c | 18 +++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) delete mode 100755 exec/a.out diff --git a/exec/a.out b/exec/a.out deleted file mode 100755 index d0b4b416be42ad8dd17930074c3ff57ce6b5a80c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15416 zcmeHOU1%KF6~4Q+Y`L+1Z0uxXxABm;sa?=`^51S}Ke~L!pIW0(nXT$wO!!O#33^lGLFThf)xE$x<3n(m#c!C24}E=ggdM zJUd>erIbM79+>^^J@!R|_eLki(y5e!ZBP#>uH`yIPfi*x_ep^urv_9T zecq!!qc%}}W8e$hb0JV`XshW)Y!&|oLgr<-&;&mnx)l&JWMtm$EXxxj11dQW=CyEx z)RTBx1^}Wx8qZ)dnGt+O_<~e{aUM_QdRG{5eXtQN(dC37cwA*(U3hijMJV&E3qnuU zgpUEyGl@BBW6K4fN+o$U;U#fI;(m+A1Jb_1M|hH{=NhAg|7KxX{pv#8|d%q?=!1qvnLps=ar>{uc;%) zPO0=cwZcB|Q!3R^PfMLb0^`^nbg=BqFPuH>Uw$Y5+P5El^@&SYUOq9m>BW~ghR=ih zA1xfm%OU7ZIXT3u6jUE3na^T)4~)tEnc z4oXM$n4iapEEkqG6Ud_>YSIO*fL1^&pcT*xXa%$aT7myx1^(7?&p)m6e`>WZv|Kr$ zl=b};FYRBq&i}IYYH(8i!Pm&`fA-h(*|8@_C9cnL+uL>D_nF`Q=kev&AGMZ$Z=L_c z`iaTW?v?Iq*2Td$D8}FURSJJ^#_ZVhc+emDpCONRvE?a-L+^V#Y3PTzOha$+>m7T} zao|-!ia#C1AN&Tx{u|cvx^?9*hpj8`Z?ICYSg+skc2Eax(m|_VpXt~$a+A;VJ2%)x z&1$Llly!da9g~XI@>^b;bz!ib{Qk~Wa;;6%$-L6CksPV7U%ffst1~yteE!_u+p`pV ziuxeojOFiqWGyePTg#``=%ik1=gwbU``r!Szs%=xjbw~8j#T9qZCU}XfL1^&pcT*x zXa%$aS^=$qRzNGD75L;7;P18aL-`?thD`0=@E{|9-?L-g_a_Pa2){ts^{($f#(p~3 zQfE)9RIM|$d+X-bAJG?6?C0<5*Z=DK_jAC==HQ#Hy;SU@<1+aTLe<_m)}Hxd#~t5l zJ*N)udhqkTdxNh7nfo<5o~QBlbKFpS=MU2PwoL^Zfa}_{0$KsBfL1^&pcT*xXa%$a zS^=$qR-i!v$R5Pb?wtx4V@avu?ozfU=Dk?pP! zR7M7d{}GuO=Di|ul++m*`uori&xf2rD1EORoZmj-(>K9E9XivWuR;AzY5zd#n74HQ zi39S-lLPl7p;a1?cX}kBf56yBS;za0?q0Lo>^6F`J-yk!oRu$_H{{vKLmY@7(@*4<>;g17{Xb2913@u-k;>cB83p~(^mF!8Paw%{q^^;_ zQ{AnM93n&fDZzHt9{qkJ_+Je9enSVxC+Gi$#2=FTKltAZ`QD_1=aY>8Bl!(FlGc)H zp4V-Ve|wsqI*IE{xixp%oL2V8SB?!G9nVv8HeGD?sAZ3x96CB`TO%ixePrVJ@X&;P zd~EFD(Mfx9Xn10j(zcU1;yI*(|C{u0&M=Q+Ic?l_3y$X~&Mq%fw_FL6!*9tHw+q#> zJ?E4PoJBr}vP;)eSkzHutV`Im$b zG!Q75kK~j)gt+L%HZSu0EqVi z3JHw+h}&tZ@ZJkP_FEw3VFiZyBM$goYURBgb?oQBtnicb7kBW!!kU7Q_X*&N1Y-Q; z`SWv{`NI;2_mc=?{JW@}$-{#M}u_kt*x z9G~~!I6o_V;A06s)(`IAQh~2gxoxB03*mQa$#~R(ygzru_;?>*?II@`;=b$M2L@4sf(m`$C95!3TaoEpa~H=hlR8M9i=N z9xzShI3Mp>t=TXh^F%k`MRg*x5A(-+PDc32cpfWmZ8E-uM@`@-??3S4h-)t*Q(-_l u%t<3Zhk2baA3Q&|kPmaGVq~?Ruy{WPl9oi3-YJ{&pY9C_cP0pls`?jOT3WaO diff --git a/exec/exec.c b/exec/exec.c index 544553b..6a6f052 100644 --- a/exec/exec.c +++ b/exec/exec.c @@ -1,3 +1,19 @@ -int execute() +#include +#include "../cmd/cmd.h" + +int execute(cmd* input, char** env) { + for(int i=0; i++;input[i]!=NULL) + { + // création d'un processus enfant du programme + cont int pid = fork(); + // pid de l'enfant est 0 + if (pid == 0) + { + // redirige la sortie standard vers un file descriptor + dup2(1, input.fd_out); + // on tue l'enfant (l'enfant devient la commande entrée par l'utilisateur) + execve(input[i].executable, input[i].args, env); + } + } }