From b74ac1380712d11984e203a081f075d8397b5a96 Mon Sep 17 00:00:00 2001 From: Gene Stark Date: Mon, 11 Apr 2022 10:42:58 -0400 Subject: [PATCH] Arrange to store captured output after wait and poll, besides after foreground statement. --- hw4/demo/mush | Bin 67856 -> 67856 bytes hw4/src/execution.c | 9 ++++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/hw4/demo/mush b/hw4/demo/mush index dd88f3a7af22b54de847f0748c5b125b1649452a..c0de4998486376552d8538d97b95d92d33d78e3f 100755 GIT binary patch delta 2430 zcmZ8j3s6*57`}IRFD?r1nye)fs0l)fNbxTf1H&>9z z^3jK?VoUGxTJmm2pZ^JRUe*n)TQnuI20NH@+t;cpi*-b-lgcIeE6Fwak;gbr*@`-0 z1EAt81MDN>z5u|+03`r04wCi&-o^+W+wnb&ve?Cj(xtQcQUJbkHNaNbiCPx?r;4Y8j1gFF z>(&6RLr-=gKjz>=R-c~Lr)RyCjF59zSapnZ1+scGf>TOb$|fQhG~Zi&8= zDan^5=XI;>=*6_3M+NMM{ZgAS2Wo$Id4!qFST4168}V)x2b;>%vM>(THemvG_IM`} zVH9+}Sr(!oi7*5^n{vca<_GsZHbMQvwVH9rf)^Gd{E|!eewxtl1P-ZUFP&05Bzz7E zR+<@z2pcxmMn|3b8TVQ2<%wX|VI@0>Enf@IrBBoj3%M~K5m|I$Z4z&#uG*o7YfI>^ z+G*yH>l(>sy18yxj{c20jdGl#4_w6 zun=J`gEsTBFcS)@N`@erJyPyjspTi5#N*3l8%|f&B^dr(Ot;iUJ*+Hdy=9WH(l;b&zvs*kv=zF?#+~3i6)qzot1D8 zm)5Ktdc}RCp(U)LS$Qxn@uaHmZ&TG%SWIWj1AXiXRo#RYigWx)I`G1UltZUfm91ae zRn^+3mqNae^)Xg0)}vTcu`;l-u=3p_E>;=mR~}c@UJJ*)3{#Yq<2p~P>Lkb&XH@kC zNLz=hmOyUCUym)2%kjsc3Gz+I^N{-?dm)YZa7PW|xK|)2L7sPy_<2RxgJu&(AP%&? zYnU1yVpNS`{mfhxOeOdSVmqzA5o4HkfS$M!&2OY09Qqxi{e98=2AbfD;cwCD*emIB z>>p7X`)9No`$c-(7h{M&Ot1N-@fq%)eZbXNMYMU7H#Neq87}Hyb_2t^3>~ I@S}}?1NX)f`v3p{ delta 2341 zcmZ8idvHuw7{7Nnm(7D+m2F8P@eCnR2_dP3MCNi8Bc`_MQ6m!XqGJ+Ll4fdYd*@^| zb^gG#n5m@1qnqrur38s0VS*r@H6AVPU2AHqVN$kp`#bk$Yuh{Xo$ou}_xqmr+;b~7 zhg571sWI`PBIUG4ba&%t7$UpxoqT%7m^9C}oa)Pq4(?yHcSVmdcZucXtH2xo7%m_Ny(>#CARgokpRCp}=vjnDvDCi$w|sKkZC)+=Dk3fWj+*q7Pq z-Kzd&UPDJTfE$&}2<$f2n>RK=eMrUQIokn{NS1|Uh1lEq!p`<~L*X#*EEa^RC3sc= zCW}o(Y?AU@It(UBzRGMzAF8T1F&LfE33+6(T`JQ$nFYLJB~6ZOpY(k9NlA+p1Ws$g1)&e2X$nBEEp;~^Hy^NfdqrKX16)(D?uFZFRn zNlZig?H*9JTQ~by_~lwb39PcS*EFVLdSiUX) zi?K!s=c(8E1sjnj$gqE$PKPU(xNmIu^CZ5LLP65 za^a>nl|6C9A`!v02(>#>pN#;M8@2bQ{Ju_A6`7`0JNR|K1v9r+HTJb>7gfLeIJTmnCqff|>7u`67qK=lAK@U~ zAqh(MRJ>FYYYdb`cm-?viP9Kk zdod3RtB^-ObM;Oj)_ZI#T*C_c5F%WJq?OnN0q|O8w;rLJT*LUa^tfx#oIK4SwtFM( zVjEu66znm_k|P}jEgWi&+rY8M9LKTam_1{%BQt*n$7R1gQNEgOnL51GS!|U2oq` zU3N}Y8EtD;)jAN9hk!Ma4YWYI`F~Zx4;*G`@x;yG2J*W<}&=j%iVo`Sr*ajTO$S` zcC~zL$m!C_xX&2T*~G;_Rf7Ng6k7c_&hVs;o_!q4kD(rH+{b8`FP6`w3BEXf7oCW8 z8eM{QJe9HL(Q2%Op7F&Qt~bz!zVSTgPX6Qda6ZkQ=bsvCxKh5wCGbN-)7M;NS diff --git a/hw4/src/execution.c b/hw4/src/execution.c index 001017d..5ba07b8 100644 --- a/hw4/src/execution.c +++ b/hw4/src/execution.c @@ -227,6 +227,9 @@ int exec_stmt(STMT *stmt) { int job = eval_to_numeric(stmt->members.jobctl_stmt.expr); int status = jobs_wait(job); store_set_int(STATUS_VAR, status); + char *output = jobs_get_output(job); + if(output) + store_set_string(OUTPUT_VAR, output); jobs_expunge(job); } break; @@ -235,8 +238,12 @@ int exec_stmt(STMT *stmt) { int job = eval_to_numeric(stmt->members.jobctl_stmt.expr); int status = jobs_poll(job); store_set_int(STATUS_VAR, status); - if(status >= 0) + if(status >= 0) { + char *output = jobs_get_output(job); + if(output) + store_set_string(OUTPUT_VAR, output); jobs_expunge(job); + } } break; case CANCEL_STMT_CLASS: