[so] [Tema1][Linux] Problema la pipe

Alex alexeurope2002 at yahoo.com
Fri Jul 18 11:37:42 EEST 2008


wow...
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.

waitpid(-1,&status,0) nu asteapta toti copiii?

Ce ar putea fi?

Alex.

--- On Fri, 7/18/08, Mircea Gherzan <mgherzan at anaconda.cs.pub.ro> wrote:
From: Mircea Gherzan <mgherzan at anaconda.cs.pub.ro>
Subject: Re: [so] [Tema1][Linux] Problema la pipe
To: so at cursuri.cs.pub.ro
Date: Friday, July 18, 2008, 1:19 AM

Alex wrote:
> Dupa ce l-am zapacit prima data am zis ca reiau si am gandit altfel
> programul,am facut si un prg de test de 50 linii de cod si
> mergea...dar in tema acceasi idee nu merge. Iata cum am gandit: Cand
> intalnesc primul operator pipe creez recursiv pentru toate
> subnodurile lui care nu sunt comenzi simple cate 2 file descriptori
> in aux(din structura arborelui). Apoi dau drumu la executia
> proceselor in ordine. Dupa executia comenzilor din primul op pipe
> distrug adica dau free la toti file descriptorii alocati (ii inchid
> inainte),fac waitpid(-1,&status,0) pt a astepta toti copiii. In copil
> tin cont si fac toate legaturile necesare intre procese__ inainte de
> exec (le-am printat...sunt ok...zic eu :D ).Dupa ce fac legaturile
> inchid in copil toate celelalte pipe-uri(s-au copiat din parinte unde
> erau deschise deja).

Pentru o comanda precum cmd1 | cmd2 | cmdN ,  cele N procese trebuie
executate in paralel, si nu "in ordine". Capacitate unui pipe este
evident finita (64K), iar eventuale apeluri ar putea  write() pot bloca
pana la preluarea de octeti.


-- 
Mircea Gherzan
Faculty of Automatic Control and Computers
Politehnica University of Bucharest
_______________________________________________
so mailing list
so at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so


      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20080718/1fd4673c/attachment.htm 


More information about the so mailing list