[so] [Tema2] [Windows] Pipe-uri anonime

Stancu Florin eu at stancuflor.in
Sat Mar 22 23:26:11 EET 2014


Adrian Sendroiu <molecula2788 at ...> 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.



More information about the so mailing list