From 73b9b7d679813d4d32be7e8e96a944fc736ccd66 Mon Sep 17 00:00:00 2001 From: Jakub Adamski Date: Sun, 13 Jan 2019 16:47:33 +0100 Subject: [PATCH] showtree wyswietla cala zawartosc --- Microshell/katalog/plik1.txt | 0 Microshell/katalog/test/test.txt | 0 Microshell/microshell | Bin 13680 -> 13680 bytes Microshell/microshell.c | 24 +++++++++++++----------- 4 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 Microshell/katalog/plik1.txt create mode 100644 Microshell/katalog/test/test.txt diff --git a/Microshell/katalog/plik1.txt b/Microshell/katalog/plik1.txt new file mode 100644 index 0000000..e69de29 diff --git a/Microshell/katalog/test/test.txt b/Microshell/katalog/test/test.txt new file mode 100644 index 0000000..e69de29 diff --git a/Microshell/microshell b/Microshell/microshell index 1806f22068fc2e5ae38cc3fd8b515141596a95c3..313a64a9e8d88c2a02bbcbe55633050c85b3b02e 100755 GIT binary patch delta 1566 zcmaJ>ZA=_h6rDHA$3mpLl!b*|>O#AKG?oHFKNOOkl9gEtMpRl%Y1K%LY5Y@Vi4n=x z(zTs#r>s6(v8~FFsBU1KAd_^}dFH}r>SG!CKyr3EUb<9Ra+m6$lm%)R&B zbM8I&y_cEXGr1=iNsih%?TOl79{Dsin59QcmYyM(Ei={rq<0=XyzRTol@%XV*M4$% z^7-OWC*NftWueUpn-k3!k~vP4Q>rvmIT9b*pK_j%6k1_g#V;7?4$~Tb+(`GCipUAt zW6B{1X~dLik&R$U1Inozs_GAWSBP@ui}Z%+UeZFV%%wRTOUvaR%~WoI>1X1U4!{B3 zK#!Sg`H4jOi+P>TB}#4GqU7yr5(9C0cK{|z?r2F^47j_+_OMY5aH2oloEwYHu{afV zf{Ccv`nRf%{Y*gnUxJqrE-=DwHWE z-uf<4y2Qr);5ziPCHPV1OYUB=y{(rs9pF%6Y?!GJxCfy-4Y>&X2=>8yw&@!!@cMijAH+A%3)@_axR(|BQ`Zp@r7tm64{GT9`!?3~Ii6s> zp;MFnrViI+uVy}EkKd^mX9Zf93N#`686`Yw&{LMw`UD^uukAS4QcXw8|7FL^(I7s+i|VI-PcW<$44-YHt=Kt&N9P2}SvkwW*NAt7PT3sfX_{(xkdJ8zzE9CQd{5K8 zc1Ph5IyGW`%-FW8fWK$q zs)KQ)jP~VPi3{I!Ln;@fKOy2m*K>OaKWwLG*R+rz&2_FP#i2T6>KDpp|OJBlK7!yI#g1WRF;X>c*Bb~iEOJo~qFXZA@Eb6z+S=N6W_Aj<%G-gpLA|ILHbNrZUrD*{v`QD#`*V#w{^ROwhn23)Dj57{f;9}ESS~R2j0UIz6u2CNyiQQI{*!XsK6M#O~60 zT@JfN(>jasHx1y@RQRJcS@wk5w}5(s)^ycuhN|?AoECoUD?6*0%1>Y>xVUgX;D8R& zd-{FCGaC9uzoVyBl)3|=)b2kZdK2;<227M(*LQ|QuPY$-g*2j9C3-?_wz#j4`v&BR zCL`yOyRsbFBY^h5gmzA_LP_{3PDlkIJoc9?S9(G^&oYC;uo^i~GRz=g_`WN-dc`T% zaV~#7;0lM!@ITj4rtzbgj^Hx zP^l6E3daq6FS$ZuUw25QJN6|?MuvDlysoS0L>kVfv7bg~!%4hNQ{k^cL36s|;cM~m zIVIfFc2J1}SEK~mE8&MY?(Sv75ZgOF@<*ycps6k_UvYbwXk+ zk&@KS_Y&9IeO0CNR9EvZZM<$eAkdo_S^Zm<{rrZia35l^-3QqDQRVspu_QJMZHeJy zv@fkP^~!Bo4%cCU_!N3SZE)+gRb!eF22kkf6x98$~-no&Jy#jh)NX-eCS7^v&OPE85J~kH9lF7)l zq%oJVD%xYV2p3kV!JL&M@CgF^!ZIB-XZDZ{GZB$sQ8zF zHOK{Ulq*Hi$dck7kGr!=)RA6VZ3j>E9h_@)HaVM}FEwA*W%ojb%K4)61-JC0v)=i9 ztuOCPLXN6l^zGpGIj3~bEv?iR-W21Q)TO1s}pzz`lm|H^5H9cED~$#{#h5(#?#=gtg`QF_*zpV6@>%Xrz> zfBaL~gnuWUvSzc*G>)~AzQd}a1*}h!Av3%1O;nmdhg8lj`geq?)TG*e^~nTZ;)x{n zh_E?XW52PRdo~07jl6y~N-X~mkQVay3ON>fwBRtiNaF?NY$6ybxTO^wo9O$UMcM%i h%HlUbT1UBdIPMLT8{UJjy#%kt8bh`Ozj2HR{{TEzu|WU; diff --git a/Microshell/microshell.c b/Microshell/microshell.c index 69f8bcd..8258771 100644 --- a/Microshell/microshell.c +++ b/Microshell/microshell.c @@ -96,28 +96,30 @@ void tree (char **argv, char * directory){ if (fork() == 0){ DIR *d; struct dirent *ent; - char ndr[max], lastdir[max]; + char ndr[max]; strcpy(ndr, directory); - while(1){ - strcpy(lastdir, ndr); - if ((d = opendir(ndr)) != NULL){ /*wchodzimy do katalogu*/ - while ((ent = readdir(d)) != NULL){ /*czytamy zawartosc*/ - char *name = ent->d_name; - if (!(!strcmp(name, ".") || !strcmp(name, ".."))){ /*jesli nazwa rozna od . lub .. */ + if ((d = opendir(ndr)) != NULL){ /*wchodzimy do katalogu*/ + while ((ent = readdir(d)) != NULL){ /*czytamy zawartosc*/ + char *name = ent->d_name; + if (!(!strcmp(name, ".") || !strcmp(name, ".."))){ /*jesli nazwa rozna od . lub .. */ + if (fork()==0){ if (chdir(name) == 0){ /*udalo nam sie wejsc do katalogu*/ closedir(d); printf("Katalog: %s\n", name); getcwd(ndr, sizeof(ndr)); /*zmieniamy directory*/ - break; /*break czytanie poprzedniego katalogu*/ + d = opendir(ndr); } - else + else{ printf("Plik: %s\n", name); + exit(0); + } } + else + wait(NULL); } } - if (!strcmp(lastdir, ndr)) - break; /*jezeli nie zmienilismy kat to wychodzimy zeby nie czytac tego samego jeszcze raz*/ + closedir(d); } exit(0); }