Adrian Sendroiu <molecula2788@...> writes: > > Florin Stancu <eu <at> stancuflor.in> writes: > > > Salut, > > > > Am și eu o mică nelămurire în legătură cu cititrea dintr-un pipe > > anonim. Când mai exact se termină această citire? > > > > De exemplu: Pentru comanda "ls | cat", se creeaza un pipe intre ls si > > cat. Procesul "ls" are redirectat stdout in hWrite și procesul "cat" > > are redirectat stdin în hRead. Totul merge destul de ok doar că > > procesul "cat" nu termină citirea din pipe. Menționez că la > > terminarea procesului "ls" închid hWrite. > > > > Am încercat și cu comenzi mai mari de forma "ls | cat | cat | cat | > > grep "Tema"", iar rezultatul este corect. Dar și aici primul proces > > "cat" nu se oprește din citirea din pipe. > > > > Florin. > > Trebuie să închizi pipe-urile înainte să faci WaitForSingleObject pentru > a aștepta procesele. Vezi exemplul din soluția laboratorului 3. > _______________________________________________ > http://ocw.cs.pub.ro/courses/so/info/lista-discutii
Nu trebuie neapărat să închizi pipe-urile înainte de WaitForSingleObject. La mine era problema că parcurgeam și creeam procesele top-dowm (prima dată era creat procesul "cat" apoi "ls"). Trebuie să faci asta bottom-up (prima dată "ls" apoi "cat"). Am schimbat locul unde se reintra în recursivitate și a mers. Oricum, mulțumesc că m-ai pus să mă uit în laborator că atunci mi-a picat fisa. _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
