<table cellspacing='0' cellpadding='0' border='0' ><tr><td valign='top' style='font: inherit;'>wow...<br>am incercat sa dau pipe-uri care sa aiba output mic...cateva caractere...si merge. Cred ca era ce ai zis tu cu dimensiunea de 64k. Totusi nu imi dau inca seama de ce se intampla asta intrucat am zis...nu astept procesele decat acolo unde este primul pipe...in princ le dau drumu la toate odata mergand recursiv,abia apoi le astept pe toate.<br><br>waitpid(-1,&status,0) nu asteapta toti copiii?<br><br>Ce ar putea fi?<br><br>Alex.<br><br>--- On <b>Fri, 7/18/08, Mircea Gherzan <i><mgherzan@anaconda.cs.pub.ro></i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;">From: Mircea Gherzan <mgherzan@anaconda.cs.pub.ro><br>Subject: Re: [so] [Tema1][Linux] Problema la pipe<br>To: so@cursuri.cs.pub.ro<br>Date: Friday, July 18, 2008, 1:19 AM<br><br><pre>Alex wrote:<br>> Dupa ce l-am
zapacit prima data am zis ca reiau si am gandit altfel<br>> programul,am facut si un prg de test de 50 linii de cod si<br>> mergea...dar in tema acceasi idee nu merge. Iata cum am gandit: Cand<br>> intalnesc primul operator pipe creez recursiv pentru toate<br>> subnodurile lui care nu sunt comenzi simple cate 2 file descriptori<br>> in aux(din structura arborelui). Apoi dau drumu la executia<br>> proceselor in ordine. Dupa executia comenzilor din primul op pipe<br>> distrug adica dau free la toti file descriptorii alocati (ii inchid<br>> inainte),fac waitpid(-1,&status,0) pt a astepta toti copiii. In copil<br>> tin cont si fac toate legaturile necesare intre procese__ inainte de<br>> exec (le-am printat...sunt ok...zic eu :D ).Dupa ce fac legaturile<br>> inchid in copil toate celelalte pipe-uri(s-au copiat din parinte unde<br>> erau deschise deja).<br><br>Pentru o comanda precum cmd1 | cmd2 | cmdN , cele N
procese trebuie<br>executate in paralel, si nu "in ordine". Capacitate unui pipe este<br>evident finita (64K), iar eventuale apeluri ar putea write() pot bloca<br>pana la preluarea de octeti.<br><br><br>-- <br>Mircea Gherzan<br>Faculty of Automatic Control and Computers<br>Politehnica University of Bucharest<br>_______________________________________________<br>so mailing list<br>so@cursuri.cs.pub.ro<br>http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so</pre></blockquote></td></tr></table><br>